我想知道如何发布多维数组?
基本上我想选择一个用户,所选用户将有电子邮件和姓名发送到帖子。
因此,选择100个用户,将有电子邮件和姓名。我想像下面的
那样使用PHP$_POST['users'] = array(
array(name, email),
array(name2, email2),
array(name3, email3)
);
有什么想法吗?
答案 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);
第二个参数告诉它创建数组而不是匿名对象。