【问题标题】:pass associative array in input field in form PHP以 PHP 形式在输入字段中传递关联数组
【发布时间】:2015-04-18 21:58:27
【问题描述】:

我想知道在输入字段中以表单形式传递关联数组的最佳和最简单的方法。到目前为止,我已经完成了这一切,这一切都开始变得凌乱且难以处理。

$dish_result = $obj->getAll_dish();// this returns array all the rows in dish table
<form action='order_process.php' method='post'>
   foreach ($dish_result as $dish){
     echo '<input id="" name="dish_name[]" type="checkbox" value="'. $dish['dish_name'].'">';
     echo '<input id="" name="dish_number[]" type="checkbox" value="'. $dish['dish_number'].'">';         
     }
</form>

现在在 order_process.php 我有

 foreach($_POST['dish_name'] as $dish){
        echo $dish;
  }
 foreach($_POST['dish_number'] as $num){
       echo $num;
 }

我想要的是一个关联数组,但我怎样才能将它动态关联到表单中。换句话说,我想在 order_process.php 上实现这一点。

 $dishes = array(
       //'dish_name' => dish_number
      'chickencurry' => '70',
      'onionbhajis'  =>  '22'
       // and so on. 
  );

非常感谢您。

【问题讨论】:

  • 如果您将 foreach 更改为包含 $key =&gt; $dish 并将输入设置为 name="dish_name[{$key}]".. 会发生什么?这样你就可以将值映射到它们的键

标签: php arrays forms post


【解决方案1】:

您可以为数组 postdata 添加索引。试试这个:

  foreach ($dish_result as $dish){
      echo '<input id="" name="dishes['.$dish['dish_name'].']" type="checkbox" value="'. $dish['dish_number'].'">'; 
  }

然后,您的数据将在回发时成为已检查元素的关联数组。

【讨论】:

    【解决方案2】:

    先创建一个分组名,然后得到那种结构,把菜名作为key,然后value属性保存数字。基本思路是这样的:

    name="dish[dishname]" value="dish_number"
    

    会是这样的:

    echo '<input id="" name="dish['.$dish['dish_name'].']" type="checkbox" value="'. $dish['dish_number'].'" />';
    

    当你提交它并选中所有复选框时,它应该是这样的:

    Array
    (
        [chickencurry] => 1
        [onionbhajis] => 2
    )
    

    在order_process.php 页面上,像往常一样调用它:

    $dishes = $_POST['dish'];
    foreach($dishes as $dish_name => $dish_number) {
    
    }
    

    Sample Output

    【讨论】:

    • 谢谢先生。多么优雅的答案。
    • @MallaSantosh 当然,很高兴这有帮助
    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2011-02-02
    • 1970-01-01
    • 2013-03-21
    相关资源
    最近更新 更多