2015-04-07 4 views
0

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

Секретарь может выбрать любое количество продуктов, установив флажки, соответствующие продукту. При отправке проверенные продукты отображаются на новой странице.

Предполагается, что секретарь сможет ввести количество ящиков, вес, дату производства и цену для каждого выбранного продукта. Поскольку мне нужно вставить информацию в таблицу, мне интересно, как я смогу сделать это с помощью массива, значение которого не знает меня. Я видел примеры вставки массивов в таблицы, но не массивы, которые были получены из таблицы.

EDIT: добавлен в код.

$products = $mysqli->query("SELECT ProdName FROM product"); 
    $numofprod = mysqli_num_rows($products); 

    $i = 0; 
    while($i < $numofprod) { 
     while($row = $products->fetch_assoc()){ 
     $prodlist = $row["ProdName"]; 

       echo "<input type='checkbox' class='prodlist' name='check_list[]' id='prodlist"; 
       echo "$i'"; 
       echo " value='"; 
       echo $prodlist; 
       echo "'>"; 
       echo $prodlist; 
       echo "</input>"; 

      $i++; 
      } 
    } 

// при подаче, он будет выполнять код ниже

  if(isset($_POST['add_purchase_submit'])){//to run PHP script on submit 
      if(!empty($_POST['prodlist'])){ 
      echo "<table><tr><th></th><th> Boxes </th> <th> Weight </th> <th> Price </th> <th> Production Date </th> </tr>"; 

      // Loop to store and display values of individual checked checkbox. 
      foreach($_POST['prodlist'] as $selected){     
      echo "<tr><td>"; 
      echo $selected; 
      echo "</td><td>"; 
      echo "<input type='text' name='ppbox' size='10'>"; 
      echo "</td><td>"; 
      echo "<input type='text' name='ppweight' size='10'>"; 
      echo "</td><td>"; 
      echo "<input type='text' name='ppprice' size='10'>"; 
      echo "</td><td>"; 
      echo "<input type='text' name='ppproducion' size='15' placeholder='MM/DD/YY'>"; 
      echo "</td><td></tr>"; 
       } 
      } 
     } 

Я также понял, что есть ошибка в названиях во второй форме ...

ответ

0
for($i = 0; i < array.size(); i++){ 
    echo '<input name="array['.$i.']"'>; 
} 

Это дает количество входных данных в вашем массиве. Позже вы можете прочитать, что как массив в PHP снова:

foreach($_POST['array'] as $entry){ 
    .. do things .. 
} 

только основной scatch, но это показывает, как вы можете использовать массивы в качестве имен для входов. Точно так же вы можете использовать их для флажков или других полей, которые вам нужны.

+0

Я добавил в код, который использовал. Я даже верный путь? –

+0

Как я понимаю, что вы хотите сделать, я добавлю также в массивы имен во второй части: 'name = 'ppbox [$ i]''. Таким образом, вы также можете прочитать там массивы. – DocRattie

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