处理 PHP 中的动态输入数

Processing dynamic number of inputs in PHP

我的表格与 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?是否可以使用一个插入语句(我正在使用 PDO)或者我应该使用 for 循环来实现?

你会想要 post 作为数组,例如

<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() 序列化数组以保存到您的数据库中。

是的,如果您在 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>

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