繁体   English   中英

$ _POST未知数量的元素

[英]$_POST unknown amount of elements

我的想法就像网上商店的篮子。

我有一个填写到表单中的项目列表,如:

<?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']'; 

这有解决方案吗?

您可以使用括号设置命名输入,以将结果作为阵列服务器端获取。 例如:

<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准备语句答案中的第二个示例以获取更多信息。

你可以使用foreach但是你不想做你想做的事情。

您应该在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']等将是你可以循环的数组。

请注意,您需要使用预准备语句将信息存储在数据库中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM