2013-04-24 3 views
0

Я попытался изо всех сил исследовать, как передать массив типов входных данных на другую страницу php. Но я застреваю каждый раз, когда я отправляю значение с одной страницы на другую.Передача массива типов входных данных

У меня есть этот код, написанный на странице cityaddinfo.php, который на ПРЕДСТАВЛЯЕТ направляет на страницу cityadded.php

<form method="POST" action="cityadded.php?city=<?php echo $city?>"> 

     <tr> 
      <td> 
      <?php 
       $quecityimage=mysql_query("SELECT * FROM `city_image` WHERE city_id=$city"); 
       echo "<b>city images</b><br>"; 

       while($cityimage=mysql_fetch_assoc($quecityimage)) 
       { 
        $pathcity=$cityimage['path']; 
        echo "<img src='$pathcity' width=\"400px\" height=\"200px\"/><br><br>"; 

       } 
      ?> 

      </td> 
     </tr> 
     <tr>    
      <td> 
      <p class="clone"> File: 
      <input type="file" name="f_name[]" size="10" style="font-family: arial; font-size: 22px;"/> 
      <p> 
      <a href="#" class="add" rel=".clone">Add More</a> 
      </p> 
      </td> 
     </tr> 

     <tr> 
      <td> 
      <input type="submit" value="submit" name="submit"> 
      </td> 
     </tr> 

cityadded.php код:

<?php 
    echo $_GET['city']; 
    if(isset($_POST['submit'])) 
    { 
    $a= $_POST['f_name']; 
    foreach($a as $img) 
    { 
     echo $img; 
    } 
    } 
    ?> 

Кодекса echo - это имя только одного имени файла входного типа. Даже если я добавляю несколько файлов. Может кто-нибудь помочь мне в том, как опубликовать этот массив входных файлов на другой странице? Заранее спасибо :)

ответ

0

вам нужно иметь ENCTYPE = "многослойную/форма-данные", установленный в вашем виде тега. Вы можете получить доступ к файлу на вашем PHP-скрипте, используя $ _FILES, а не $ _POST.

HTML:

<input type="file" name="file_sent" size="10" style="font-family: arial; font-size: 22px;"/> 

на PHP странице вы можете получить доступ к тем же с помощью следующей

$_FILES["file_sent"]["name"] - the name of the uploaded file 
    $_FILES["file_sent"]["type"] - the type of the uploaded file 
    $_FILES["file_sent"]["size"] - the size in kilobytes of the uploaded file 
    $_FILES["file_sent"]["tmp_name"] - the name of the temporary copy of the file stored on the server 
    $_FILES["file_sent"]["error"] - the error code resulting from the file upload 

EDIT: Я не понимаю, почему вы хотели бы иметь другие атрибуты в поле файла на странице HTML. Я не думаю, что эти атрибуты будут работать в поле файла. Даже если они это сделают, переместите их в таблицу стилей.

См. http://php.net/manual/en/features.file-upload.multiple.php вам нужно получить доступ к ним с помощью индексов, так как вы передаете массив элементов файла.

+0

Rahul: файл типа ввода отправляется на другую страницу в 'submit', я попытался использовать enctype, а также получить доступ к файлу с помощью $ _FILES. Имя моего файла типа ввода - «f_name». При доступе к файлу с помощью $ _FILES я получаю сообщение об ошибке «Undefined Index: f_name» –

+0

у вас все еще есть квадратные скобки в имени вашего поля - f_name [] ?? Удалите их. будет делать –

+0

@RahulNanwani Вы видите 'add more' в коде, который клонирует вход' file'? Использование скобок превращает его в массив, чтобы это было возможно. – Jon

0

Используйте $ _FILES вместо $ _POST для файлов.

1

У вас есть много ошибок,

  1. $a= $_POST['f_name']; вы не можете получить доступ поля файла, как это вы должны использовать вместо $_FILES.

  2. Если вы хотите загрузить файл с помощью формы, вы должны иметь enctype="multipart/form-data" в атрибуте формы. Я тоже этого не вижу. Я думаю, вам нужно изучить некоторые основы.

+0

Я исправил свои ошибки, и на самом деле они не были ошибками. но вместо этого я специально удалил его, чтобы проверить методы diff. Поскольку использование $ _FILES вместо $ _POST дает мне ошибку «Undefined Index: f_name» –

+0

Hi Ishq ya сказать мне –

+0

@IshqMehta, вы получите эту ошибку, если 'enctype =" mutlipart/form-data "' не является частью начальный тег ' Jon

0

Добавьте это в форме:

enctype="multipart/form-data" 

Пример:

<form method="POST" action="cityadded.php?city=<?php echo $city?>" enctype="multipart/form-data"> 

 Смежные вопросы

  • Нет связанных вопросов^_^