我的想法就像一个网上商店的篮子。
我有一个填写到表单中的项目列表,如:
<?php while($info=msqli_fetch_array($query)){ ?>
<Input type="text" id="someid1" value="<?php echo $info['info']; ?>">
<Input type="Checkbox" id="checkid1" value="1">
<Input type="Checkbox" id="checkid2" value="2">
<?php } ?>
我想使用POST进行提交。 在每一行的下一页上应该这样做:
MYSQLI查询
INSERT into booking (text,variable1,variable2)
VALUES ('$_POST['someid1']','$_POST['checkid1']','$_POST['checkid2']';
有解决方法吗?
答案 0 :(得分:3)
您可以使用括号设置命名输入,以将结果作为阵列服务器端获取。例如:
<input type="text" name="fruits[1]" value="apple" />
<input type="text" name="fruits[2]" value="orange" />
在服务器端:
<?php
print_r($_POST['fruits']);
?>
array(
1 => 'apple',
2 => 'orange',
)
这解决了这个问题。但是你的代码提出了一些应该真正解决的问题。
如果只是将$_POST
变量转储到查询中,则需要SQL注入。使用PHP的PDO功能并参数化您的输入。请查看PHP PDO prepared statements答案中的第二个示例以获取更多信息。
答案 1 :(得分:0)
您可以使用foreach,但恕我直言并不是您想要做的事情。
答案 2 :(得分:-1)
您应该在html中使用数组,然后在$_POST
数组中获得相应的数组。请注意,您需要name属性:
<input name="someid[<?php echo $info['id']; ?>]" id="someid1" value="<?php echo $info['info']; ?>">
<input name="checkid[<?php echo $info['id']; ?>]" id="checkid1" value="1">
// etc.
现在$_POST['someid']
等将是你可以循环的数组。
请注意,您需要使用预准备语句将信息存储在数据库中。