php表单在输入的值字段中使用POST发送数组

时间:2014-12-04 15:16:53

标签: php html forms multidimensional-array

我有一个关于在表单中使用POST发送数据的问题。

我必须发送array(j, i, 59, j, k, 59);类似于复选框的值。

具有相同名称的复选框应该接受多个值,因此我需要发送一个多维数组

array("sunday", "Monday", ...);
echo "<form action ='' method='POST'>";
// some code...
for ($i = 0; $i < count($day); $i++) {
    for ($j = 0; $j < $N; $j++) {
        $value = array($va1, $var2, $var3, ..$varN);
        echo "<input type='checkbox' name='$day" . "[]' value='$value' /> $i-$j";
    }
}
echo "</form>";

var1:varN是整数,取决于i, j和其他变量

$_POST['Monday']中的

应为array((array(par1,..ParN),(array(par1,..ParN))但不起作用, 因为在接收方,代码如

$Data= $_POST['Monday'] ;

获取(使用var_dump):

array [k](其中k是复选框的编号,没关系)。 每个条目都是字符串(5)=&#34;数组&#34;但我想要一个值数组,而不是字符串。

有人能帮助我吗? 非常感谢你,抱歉我的英语不好!

2 个答案:

答案 0 :(得分:1)

基本PHP:字符串上下文中使用的数组是文字Array

$foo = array();
echo $foo; // output: "Array"

你有这个:

$value=array($va1,$var2,$var3,..$varN);
^^^^^---- $value is an array

echo "<input type='checkbox' name='$day" . "[]' value='$value' /> 
                                                       ^^^^^^----output in string context

如果您打算做一个&#34;查看来源&#34;在您的网页上,您已经看到了HTML字面意思:

<input type='checkbox' name='Monday[]' value='Array' />

您需要implode()该数组,以便它成为一个字符串:

echo "<input type='checkbox' name='{$day}[]' value='" . implode(',', $value) . "' />";

答案 1 :(得分:1)

您可以将json_encode($array);数组用于值字段,然后只使用json_decode($_POST[$day],true);以防您想要使用更复杂的数组。