在表单 PHP 的输入字段中传递关联数组

pass associative array in input field in form PHP

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

$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. 
  );

非常感谢您。

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

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

您的数据将在回发时成为选中元素的关联数组。

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

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