PHP MySQL Получить материал и количество для формы заказа - PullRequest
0 голосов
/ 10 мая 2019

Мне нужно создать форму заказа, в которой есть флажок для каждого продукта в таблице и поле количества рядом с каждым продуктом.
Мне нужно обработать продукты, которые были проверены, и обновить таблицу заказов с проверенными продуктами и введенным количеством.

Я не знаю, как связать флажок продукта с полем количества.

$sql="select * from tproducts";

$result=mysqli_query($con, $sql) or die(mysqli_error($con));
echo "<table>";
echo "<tr>";
echo "<th>Product Names</th>";
echo "</tr>";
if(mysqli_num_rows($result)>0)
{
  echo "<form action=welcome1.php method=post>";
  while ($row = mysqli_fetch_array($result))
  {
    echo "<tr>";
    echo '<td><input type="checkbox" value="' . $row['intProductID'] . '" name="materialcode[]">' . $row['strProductName'] . "</td>";
    echo "<td>Enter Quantity </td>";
    echo "<td><input type='text' name='qty[]' value='qty' size=5></td>";  
    echo "</tr>";
  } 
} 
echo "</table>";
echo '<input type="submit" name="submit" value="submit" />';
echo "</form>";
echo "</html>";

welcome1.php
<?php
echo "materialcode<br>";
print_r($_POST['materialcode']);
echo "<br>";
echo "qty<br>";
print_r($_POST['qty']);
?>

1 Ответ

0 голосов
/ 10 мая 2019

PHP сохранит введенное вами имя ключа в полях html.

  $productIndex = 0;   

  while ($row = mysqli_fetch_array($result) )
  {
    echo "<tr>";
    echo '<td><input type="checkbox" value="' . $row['intProductID'] . '" name="materialcode[$productIndex]">' . $row['strProductName'] . "</td>";
    echo "<td>Enter Quantity </td>";
    echo "<td><input type='text' name='qty[$productIndex]' value='qty' size=5></td>";  
    echo "</tr>";
    $productIndex++;
  } 

В этом примере используются числовые индексы, но вы, вероятно, также можете использовать $row['intProductId'].

В вашем php:

$_POST['materialCode'][0] будет аналогом $_POST['qty'][0], но будут поставлены только отмеченные флажки.В итоге вы можете получить массив $_POST['materialCode'] с индексами 0, 5 и 7, если только они проверены.

Так что используйте цикл foreach вместо цикла for.

foreach( $_POST['materialCode'] as $key => $value ){
    $productId = $value; 
    $quantity = $_POST['qty'][$key]; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...