Как получить доступ к позиции формы массива динамически в форме HTML / PHP? - PullRequest
0 голосов
/ 11 июня 2011

Я немного изучаю php и html, используя smarty, чтобы помочь ему.Я пытаюсь создать очень простой магазинный список с изображением корзины, в котором при нажатии на нее предполагается возвращать через форму информацию, которую я хочу получить от этого элемента, но мне не удается правильно определить индекс элементов....

Это код, относящийся к циклу внутри tlp (это HTML-код, используемый внутри smarty):

{section name=i loop=$homeList}
     <div class="homemenu" align="right">
        <table class="menhome" border="0">
            <tr>
            <td width="102"><img src="{$homeList[i].img}"/></td>
            <td width="150">{$homeList[i].Nome} </td>
            <td width="350">{$homeList[i].Descricao}</td>
            <td width="80">{$homeList[i].Preco} €</td>
            <td width="80">{$homeList[i].Disponiblidade}</td>
            <td><form action="updatecart.php"  method="POST">
                <input type="hidden" name="usr[]" value="abobora">
                <input type="hidden" name="iditem[]" value="{$homeList[i].IDItem}">
                <input type="hidden" name="qta" value="1">
                <input type="hidden" name="index" value="1">
                <input type="image" name="submit" src="../images/carro.png" width="52" height="52"> 
            </td>
            </tr>
        </table>
    </div>
{/section}

, и это код, относящийся к "экспериментальному"php update:

require_once("functions.php");
var_dump($_POST);

, и это пример вывода var_dump:

array
'usr' => 
    array
      0 => string 'abobora' (length=7)
      1 => string 'abobora' (length=7)
      2 => string 'abobora' (length=7)
      3 => string 'abobora' (length=7)
      4 => string 'abobora' (length=7)
  'iditem' => 
    array
      0 => string 'it10' (length=4)
      1 => string 'it13' (length=4)
      2 => string 'it2' (length=3)
      3 => string 'it20' (length=4)
      4 => string 'it21' (length=4)
  'qta' => string '1' (length=1)
  'index' => string '1' (length=1)
  'submit_x' => string '22' (length=2)
  'submit_y' => string '27' (length=2)

Дело в том, как сказать форме, что одна кнопка имеет единый индекс длямассив и получить доступ к правильной информации внутри массива?

PS: индекс = "1" здесь просто экспериментальное значение, то, что я хотел, это информация относительно индекса

PSS: извините за плохой формат вывода, но иногда я просто не понимаю, как работает тег code ....

1 Ответ

1 голос
/ 11 июня 2011

Я не уверен, что правильно понял вопрос, но вы ищете что-то вроде:

<input type="hidden" name="usr[{index_in_array}]" value="abobora">
<input type="hidden" name="iditem[{index_in_array}]" value="{$homeList[i].IDItem}">

Редактировать: Вы неправильно закрываете <form>, и этоВот почему вы не можете полагаться на значения индекса, которые отправляются в:

        <td><form action="updatecart.php"  method="POST">
            <input type="hidden" name="usr[]" value="abobora">
            <input type="hidden" name="iditem[]" value="{$homeList[i].IDItem}">
            <input type="hidden" name="qta" value="1">
            <input type="hidden" name="index" value="1">
            <input type="image" name="submit" src="../images/carro.png" width="52" height="52">
          </form>            // added
        </td>
...