2012-04-13 3 views
1

У меня есть форма, такие, как показано ниже:HTML имя индекса массива переменной

<form name="basketSelectionForm" action="processBasket.php" method="POST"> 
      <div id="tabs-1"> 
       <table cellpadding="10" cellspacing="10" width="inherit"> 
        <tr> 
         <td><img alt="itemNameb" src="images/itemName.jpg" width="70px" height="70px"/></td> 
         <td>Qty. <input value="0" id="itemName" name="basket[itemName]" type="text" style="width:40px;"/>&nbsp; &nbsp; &nbsp;</td> 

         <td><img alt="itemName" src="images/itemName.jpg" width="70px" height="70px"/></td> 
         <td>Qty. <input value="0" id="itemName" name="basket[itemName]" type="text" style="width:40px;"/></td> 

Теперь, когда я иду на вторую страницу, чтобы посмотреть на записи массива, я делаю это:

<?php 
    $itemsBasket = array(); 
    $itemsBasket = $_POST['basket']; 
    echo "<h1>The Items Are...</h1><br>"; 
    //print_r($itemsBasket); 


    foreach ($itemsBasket as $value) 
    { 
     if($value > 0){ 
      echo $value . "<br>"; 
     } 
    } 

?> 

Это напечатает значение по индексам массива ... но мне нужно сохранить имя индекса, так что скажем, что товар шоколад и значение 12. Я хочу извлечь это имя индекса из массива для его хранения в переменной, а затем присвоить значение этой переменной ...

В любом случае я могу это сделать? сейчас я получаю только значение в то время как итерация ...

Спасибо за помощь и извините, если вопрос не ясно, я объяснить лучше, если так ...

UPDATE: это неожиданный выход .. ..

whitethoab: Array woolthoab: 22 shemag: 22 майка: 1 serwalthoab: 22 носки: 12

и это определение элемента, показывающий, как двухмерного массива ...

<td><img alt="White Thoab" src="images/whitethoub.jpg" width="70px" height="70px"/></td> 
         <td>Qty. <input value="0" id="whitethoab" name="basket[whitethoab]" type="text" style="width:40px;"/>&nbsp; &nbsp; &nbsp;</td> 
+1

Вся часть HTML полностью не имеет значения. Этот вопрос должен просто читать: «Как мне получить« foreach », чтобы получить ключ, а также значение?» Ответ на этот вопрос, конечно, [RTFM] (http://php.net/foreach). –

ответ

3

Что-то вроде:

<form name="basketSelectionForm" action="processBasket.php" method="POST"> 
      <div id="tabs-1"> 
       <table cellpadding="10" cellspacing="10" width="inherit"> 
        <tr> 
         <td><img alt="itemNameb" src="images/itemName.jpg" width="70px" height="70px"/></td> 
         <td>Qty. <input value="12" id="itemName" name="basket[chocolate]" type="text" style="width:40px;"/>&nbsp; &nbsp; &nbsp;</td> 

         <td><img alt="itemName" src="images/itemName.jpg" width="70px" height="70px"/></td> 
         <td>Qty. <input value="9" id="itemName" name="basket[onions]" type="text" style="width:40px;"/></td> 

... и ...

<?php 

    echo "<h1>The Items Are...</h1><br>"; 

    foreach ($_POST['basket'] as $name => $value) 
    { 
     if($value > 0){ 
      echo $name . ": " . $value . "<br>"; 
     } 
    } 

/* Output: 
chocolate: 12 
onions: 9 
*/ 

?> 

?

+0

сделал трюк ... Спасибо;) Я очень ценю это: D –

+0

один вопрос, хотя ... первый элемент печати из массива отображается как массив ... пока остальные отображаются правильно .... любая идея, почему ? Я проверил, что это одномерный массив, как показано выше. –

+0

Можете ли вы показать точный результат, который вы получите? – DaveRandom

1

Не уверен, но я думаю, что вы хотите, это

foreach ($itemsBasket as $key => $value) 
{ 
    if($value > 0){ 
     echo $key. "<br>\n" 
     echo $value . "<br>\n"; 
    } 
} 
Смежные вопросы