【发布时间】:2020-12-31 01:50:02
【问题描述】:
我有 procuts 表(数据来自数据库)
<?php
while($row3 = mysqli_fetch_array($result2)) {
$prodname = $row3['name'];
$supid = $row3['supplier'];
$prodid = $row3['id'];
$prodprice = $row3['price'];
?>
<tr class='listtable'>
<td><input type="checkbox" name="prod[]" id="prod[<?php echo $prodid; ?>]" value="<?php echo $prodid; ?>"><label for="prod[<?php echo $prodid; ?>]"><?php echo $prodname; ?></label>
</td>
<td><label for="prod[<?php echo $prodid; ?>]"><?php echo $prodprice; ?> NIS
</td></label>
<td><input type="text" name="qty" placeholder="Qty" minlength="1" maxlength="3" size="2">
</td>
</tr>
<?php
}
?>
如果选中复选框,我想发送每一行的数据... 我可以发送复选框值(我发送产品 ID 以从数据库中获取每个被选中的数据,但我无法发送数量文本框值(我只想发送选中的那些)
<?php
include "db.php";
if(isset($_POST['submit'])){
if(!empty($_POST['prod'])){
foreach($_POST['prod'] as $pid){
$proddetail = mysqli_query($con,"SELECT * FROM `products` WHERE id = $pid");
while($prod = mysqli_fetch_array($proddetail)) {
$pname = $prod['name'];
$pprice = $prod['price'];
echo $pname;
echo $pprice;
echo "<br>";
}
}
} else {
echo 'no items selected!';
}
}
?>
【问题讨论】:
-
有很多方法:1)使用JS,2)纯PHP:更改输入文本的名称以匹配复选框ID,并在后端测试是否选中了复选框值与输入名称匹配...
-
什么不起作用?
-
警告:您对SQL Injections 持开放态度,应该使用参数化的prepared statements,而不是手动构建查询。它们由PDO 或MySQLi 提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your data。 Escaping is not enough!