【问题标题】:php form sending array in input's value field with POSTphp表单使用POST在输入的值字段中发送数组
【发布时间】:2015-02-02 12:54:08
【问题描述】:

我有一个关于在表单中使用 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是复选框的数量,可以)。 每个条目都是 string(5)="Array" 但我想要一个值数组,而不是字符串。

有人可以帮助我吗? 非常感谢你,对不起我的英语不好!

【问题讨论】:

  • 您在第一行缺少星期一之前的报价。你也不能回显一个数组($value)。不要回显我们的 HTML 吗?> 结束 PHP 块并编写普通的 HTML,它更容易阅读
  • @MatejŽvan 我在这里重写代码块时缺少引号,源代码对 sintax 没问题。我更喜欢 echo HTML,因为我的页面有 800 行 php 和 5 行 HTML,但是如果你认为它更容易理解,下次我会在 stackoverflow 上编写普通的 HTML

标签: php html forms multidimensional-array


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    基本 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
    

    如果您费心在页面上进行“查看源代码”,您会看到 HTML 字面意思:

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

    你需要implode()那个数组,让它变成一个字符串:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 2012-02-25
      相关资源
      最近更新 更多