将输入数据存储到维数组

时间:2014-10-20 23:03:21

标签: php

将html输入数据存储到数组

这是我的HTML代码

    <form method="post" >
<ul>
<li>Title: <input type="text" name="item[0][title]" />
    <ul>
    <li>name: <input type="text" name="item[0][data][0][name]" /></li>
    <li>decription: <input type="text" name="item[0][data][0][description]" /></li>
    <li><input type="text" name="item[0][data][0][price][0][size]" /> price: <input type="text" name="item[0][data][0][price][0][price]" /></li>
    </ul>
    <ul>
    <li>name: <input type="text" name="item[0][data][1][name]" /></li>
    <li>decription: <input type="text" name="item[0][data][1][description]" /></li>
    <li>size: <input type="text" name="item[0][data][1][price][0][size]" /> price: <input type="text" name="item[0][data][1][price][0][price]" /></li>
    <li>size: <input type="text" name="item[0][data][1][price][1][size]" /> price: <input type="text" name="item[0][data][1][price][1][price]" /></li>
    </ul>
</li>
<li>
Title: <input type="text" name="item[1][title]" />
    <ul>
    <li>name: <input type="text" name="item[1][data][0][name]" /></li>
    <li>decription: <input type="text" name="item[1][data][0][description]" /></li>
    <li>size: <input type="text" name="item[1][data][0][price][0][size]" /> price: <input type="text" name="item[1][data][0][price][0][price]" /></li>
    </ul>
</li>
<li>
Title: <input type="text" name="item[2][title]" />
    <ul>
    <li>name: <input type="text" name="item[2][data][0][name]" /></li>
    <li>decription: <input type="text" name="item[2][data][0][description]" /></li>
    <li>size: <input type="text" name="item[2][data][0][price][0][size]" /> price: <input type="text" name="item[2][data][0][price][0][price]" /></li>
    </ul>
</li>
</ul>
<input type="hidden" name="submit" value="haha">
<button>submit</button>
</form>

这里的数组看起来像但它只输出一半我使用var_dump抱歉

array (size=2)
  'title' => string 'rice' (length=4)
  'data' => 
    array (size=2)
      0 => 
        array (size=3)
          'name' => string 'fried rice' (length=10)
          'description' => string 'stir fried white rice' (length=21)
          'price' => 
            array (size=1)
              ...
      1 => 
        array (size=3)
          'name' => string 'white rice' (length=10)
          'description' => string '' (length=0)
          'price' => 
            array (size=2)
              ...

它正在努力将数据保存到数组,但我使用的方式是将属性名称更改为数组格式。

我试图找出这种方式,或任何其他短路的方式。

任何帮助将不胜感激!提前谢谢!

1 个答案:

答案 0 :(得分:0)

你已经做到了不必要的复杂。

如果您使用语法name="field[]",那么您将在$ _POST ['field']中收到一个值数组,如下所示: -

<form method="post" >
<ul>
   <li>Title: <input type="text" name="title[]" />
      <ul>
         <li>name: <input type="text" name="name[]" /></li>
         <li>decription: <input type="text" name="description[]" /></li>
         <li>Qty<input type="text" name="qty[]" /> 
             price: <input type="text" name="price[]" /></li>
      </ul>
      <ul>
         <li>name: <input type="text" name="name[]" /></li>
         <li>decription: <input type="text" name="description[]" /></li>
         <li>Qty<input type="text" name="qty[]" /> 
             price: <input type="text" name="price[]" /></li>
      </ul>
      <ul>
         <li>name: <input type="text" name="name[]" /></li>
         <li>decription: <input type="text" name="description[]" /></li>
         <li>Qty<input type="text" name="qty[]" /> 
             price: <input type="text" name="price[]" /></li>
      </ul>
   </li>
</ul>
<input type="hidden" name="submit" value="haha">
<button>submit</button>
</form>

现在,如果你看一下var_dump或更好的print_r($ _ POST),你会看到数据以一种很好的可处理顺序到达PHP脚本。

所以现在你处理它们就像这样的事情

foreach ($_POST['name'] => $idx => $name ) :

    echo $name;
    echo $_POST['description'][$idx];
    echo $_POST['qty'][$idx];
    echo $_POST['prince'][$idx];

endforeach;