从形式的多维数组发布

时间:2009-11-12 00:35:38

标签: php jquery xhtml forms post

我想知道如何发布多维数组?

基本上我想选择一个用户,所选用户将有电子邮件和姓名发送到帖子。

因此,选择100个用户,将有电子邮件和姓名。我想像下面的

那样使用PHP
$_POST['users'] = array(
  array(name, email),
  array(name2, email2),
  array(name3, email3)
);

有什么想法吗?

3 个答案:

答案 0 :(得分:30)

您可以将表单元素命名为:

<input name="users[1][name]" />
<input name="users[1][email]" />
<input name="users[2][name]" />
<input name="users[2][email]" />
...

你明白了......

答案 1 :(得分:7)

Here是另一种方式:serialize数组,发布和unserialize(加密可选)。

这是一个适合我的例子:

“的 send.php ”:

<input type="hidden" name="var_array" value="<?php echo base64_encode(serialize($var_array)); ?>">

“的 receive.php ”:

if (isset($_POST['var_array'])) $var_array = unserialize(base64_decode($_POST['var_array']));

使用它,您可以使用$var_array,就好像它是在两个文件/会话之间共享一样。当然,此 send.php 中需要<form>,但您也可以将<a>作为查询字符串发送。

使用多维数组时,此方法具有很大的优势。

答案 2 :(得分:2)

好吧,你将不得不在某个地方做一些循环。如果用索引命名每个表单元素(如Franz建议的那样),则在PHP端进行循环。

如果要使用Javascript进行循环,请将表单onSubmit()创建一个JSON字符串以传递给PHP。然后让PHP检索它:

json_decode($_POST['users'], true);

第二个参数告诉它创建数组而不是匿名对象。