2009-07-07 6 views
0

Я не могу показаться, чтобы понять, почему я не могу передать все значения с помощью следующего кода:Php массива разместить значения dificulties

<div class="menu"> 
Por favor seleccione os conteúdos: 
<form name="Categorias" action="Elementos_Descritivos.php" method="post"> 
<?php 

$Categorias = array ("Nome", "Data", "Cliente", "Observacoes"); 

foreach($Categorias as $key => $value){ 

echo "<div class=\"cb-row\"> 
     <label for=\"$value\">$value:</label> 
     <input id=\"$value\" $value=\"$value\" type=\"checkbox\" value=\"$value\" checked /> 
     </div>"; 
} 
?> 
    <div class="submit"> 
    <input type="submit" value="Seguinte" /> 
</div> 
    </form> 
</div> 
</div> 

На странице Elemento_Descritivos.php Вся коде я имею:

<?php 

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

?> 

Он просто выводит:

Массив ( )

Спасибо.

ответ

7

Вам необходимо установить атрибут на все ваши входы для сообщения формы для работы. ID не отправляется при отправке формы.

<input id=\"$value\" name=\"$value\" .../> 

Сделайте то же самое для своей кнопки отправки. Это позволит вам определить, какая кнопка отправки была нажата, если у вас много в той же форме.

+0

Когда серверы выходят на просмотр, что им эффективно получает имя = «Nome», не так ли? Когда все было ясно, html работал безупречно, вы имеете в виду, что моей кнопке отправки требуется аргумент «имя»? – Marvin

+0

У меня только одна форма, все, что я получил на этой странице. Поэтому почему им все еще путают по этой проблеме, извините, но не могли бы вы объяснить немного дальше? Спасибо. – Marvin

+0

Посмотрите на выведенный HTML-код: вы получите Nome = "Nome" вместо name = "Nome" – Greg

2

Как указал Вади, вам необходимо назначить атрибут имени для ввода. Я переписал ваш код в надежде, что станет немного более ясно, что происходит. Я также удалил атрибут $ value = \ "$ value \".

<div class="menu"> 
    Por favor seleccione os conteúdos: 
    <form name="Categorias" action="Elementos_Descritivos.php" method="post"> 

    <?php 
    $Categorias = array ("Nome", "Data", "Cliente", "Observacoes"); 
    foreach($Categorias as $category){ 
    ?> 

    <div class="cb-row"> 
     <label for="<?=$category;?>"> 
      <?=$category;?> 
     </label> 
     <input 
      id="<?=$category;?>" 
      name="<?=$category;?>" 
      type="checkbox" 
      value="<?=$category;?>" 
      checked 
      /> 
    </div> 

    <? 
    } //foreach 
    ?> 

    <div class="submit"> 
     <input name="categories" type="submit" value="Seguinte" /> 
    </div> 
    </form> 
</div> 
+0

Спасибо, я чувствую себя довольно глупым, как это было совершенно ясно в первом посте. Я ценю, что вы не торопитесь, чтобы переписать код, довольно интересный, чтобы увидеть разные подходы :) – Marvin

+0

С удовольствием помогаем мне мешать делать то, что я должен делать, чувствуя, что я что-то сделал :) – Eddy

+0

Eddy, удалите верхнюю часть '' теги, которые окружают вашу разметку, так как вы не можете напрямую поместить html-разметку в php-код. Выбранный пример не будет работать. –

Смежные вопросы