处理PHP中的动态输入数

时间:2015-01-06 22:39:39

标签: php mysql forms pdo

我的格式与here类似。

它有一个动态的输入数,例如

<li><input type="text" name="friend_1" id="friend_1" /></li>
<li><input type="text" name="friend_2" id="friend_2" /></li>
<li><input type="text" name="friend_3" id="friend_3" /></li>
<li><input type="text" name="friend_4" id="friend_4" /></li>
<li><input type="text" name="friend_5" id="friend_5" /></li>
</ol>
<input type="button" value="Add Friend Field" onclick="addField('friends_area','friend_',10);" />

通常,当您想要处理表单时,您会参考 某个形式的变量为$_POST['friend']

  1. 有没有办法将所有$_POST['friend_X']收集到一个数组中? (请注意,可能存在差距)
  2. 并将其插入MySQL table?是否可以使用一个insert语句(我正在使用PDO)或者我应该使用for循环吗?

2 个答案:

答案 0 :(得分:3)

您希望以

等数组发布
<li><input type="text" name="friend[]" id="friend_1" /></li>
<li><input type="text" name="friend[]" id="friend_2" /></li>
<li><input type="text" name="friend[]" id="friend_3" /></li>
<li><input type="text" name="friend[]" id="friend_4" /></li>
<li><input type="text" name="friend[]" id="friend_5" /></li>

然后使用serialize()序列化数组以保存到您的数据库。

答案 1 :(得分:2)

是的,如果您在html中使用数组开头,那么您的所有值也将在数组中:

<li><input type="text" name="friend[1]" /></li>
<li><input type="text" name="friend[2]" /></li>
<li><input type="text" name="friend[3]" /></li>
<li><input type="text" name="friend[4]" /></li>
<li><input type="text" name="friend[8]" /></li>
<li><input type="text" name="friend[9]" /></li>

在php $_POST['friend']中将是一个包含您设置的索引的数组(如果您设置它们)。如果您没有设置索引,它们只会从0开始。