2016-05-27 9 views
0

POSTで渡す値の配列を設定しているHTMLのコードがありますが、PHPファイルにアクセスする方法がわかりません。

これは 'main.php' です:HTMLコードは、私が持っている送信先を 'next.php' での

<tr> 
    <td><input name="item[0][item]" type="text" id="item" size="5" /></td> 
    <td><input name="price[0][price]" type="text" id="price" size="5" /></td> 
    <td><input name="order_date[0][order_date]" type="text" id="order_date" size="5" /></td> 
</tr> 
<tr> 
    <td><input name="item[1][item]" type="text" id="item" size="5" /></td> 
    <td><input name="price[1][price]" type="text" id="price" size="5" /></td> 
    <td><input name="order_date[1][order_date]" type="text" id="order_date" size="5" /></td> 
</tr> 

echo "<pre>"; 
print_r($_POST); 
echo "</pre>"; 

私に与える:

Array 
(
    [item] => Array 
     (
      [0] => Array 
       (
        [item] => item1 
       ) 

      [1] => Array 
       (
        [item] => item2 
       ) 

     ) 

    [price] => Array 
     (
      [0] => Array 
       (
        [price] => 80.00 
       ) 

      [1] => Array 
       (
        [price] => 59.99 
       ) 

     ) 

    [order_date] => Array 
     (
      [0] => Array 
       (
        [order_date] => 2016-05-01 
       ) 

      [1] => Array 
       (
        [order_date] => 2016-05-31 
       ) 

     ) 

) 

答えて

3

foreachを使用すると、次のようなプロパティを繰り返すことができます。これは:それはあなたのHTMLのレイアウトを変更することができます場合は

foreach ($_POST['item'] as $i=>$item) { 
    $name = $item['item']; 
    $price = $_POST['price'][$i]['price']; 
    $order_date = $_POST['order_date'][$i]['order_date']; 
} 

、私はこのような何かをお勧めします:

foreach ($_POST['items'] as $item) { 
    $name = $item['name']; 
    $price = $item['price']; 
    $order_date = $item['order_date']; 
} 

<tr> 
    <td><input name="items[0][name]" type="text" id="item" size="5" /></td> 
    <td><input name="items[0][price]" type="text" id="price" size="5" /></td> 
    <td><input name="items[0][order_date]" type="text" id="order_date" size="5" /></td> 
</tr> 
<tr> 
    <td><input name="items[1][name]" type="text" id="item" size="5" /></td> 
    <td><input name="items[1][price]" type="text" id="price" size="5" /></td> 
    <td><input name="items[1][order_date]" type="text" id="order_date" size="5" /></td> 
</tr> 

これはそれがはるかに簡単にアクセスして、アイテムのプロパティを反復処理することができます

0

可能であれば、テーブルを次のように設定する必要があります。

<tr> 
    <td><input name="item[]" type="text" id="item" size="5" /></td> 
    <td><input name="price[]" type="text" id="price" size="5" /></td> 
    <td><input name="order_date[]" type="text" id="order_date" size="5" /></td> 
</tr> 

このように$ _POSTを反復する:

$i = 0; 
$totalNum = 2; 
while ($i <= $totalNum) { 
    echo "item: ".$_POST['item'][$i]; 
    echo "price: ".$_POST['price'][$i]; 
    echo "order date: ".$_POST['order_date'][$i]; 
    $i++; 
} 
関連する問題