2013-11-25 4 views
0

Кажется, что я не могу найти решение моей проблемы. Я попытался найти его, но результаты, предоставленные мне, содержат javascript в решении. Я бы хотел использовать PHP. Итак, моя проблема заключается в том, чтобы динамически генерируемые текстовые поля были уникальными именами, чтобы впоследствии получить их значения.динамически присваивать атрибут имени текстового поля значение

Вот мой код:

<form name="zodiac_quiz" id="zodiac_quiz" method="post" action="<?php $_SERVER['PHP_SELF']?>"> 
     <h3>True or False</h3> 
     <?php 
      for($i=0; $i<count($typeTF); $i++) 
      { 
       echo "<input type = 'text' size = 12 maxlength = 5 name = TF$i+1 />"; 
      } 
     ?> 
     <input type='submit' name='checkAns' id='checkAns' value='Submit Answers'/> 
     <br/> 

</form> 

Когда я проверить код, чтобы увидеть, если он работал с помощью var_dump() я получаю только NULL. Как я могу это решить?

+0

Является ли сгенерированный html правильным? Я думаю, вам нужно будет исправить выход html. а не генерация имени – Florian

ответ

0

гораздо проще в использовании arrays (и вы теряете много цитат в input тега):

foreach($typeTF as $t) 
{ 
    echo '<input type="text" size="12" maxlength="5" name="TF[]" />'; 
} 

Тогда просто перебрать $_POST['TF'].

0

Вы не можете выполнять математические функции внутри эхо строки у вас есть два варианта:

echo "<input type = 'text' size = 12 maxlength = 5 name = 'TF" . $i+1 . "' />"; 

Или вы можете сделать температуру переменной

$temp = $i + 1; 
echo "<input type = 'text' size = 12 maxlength = 5 name = '$temp' />"; 

Но я хотел бы сделать это как массив:

echo "<input type = 'text' size = 12 maxlength = 5 name = 'TF[" . $i+1 . "]' />"; 

Таким образом, вы можете получить доступ ко всем значениям в массиве $_POST['TF'].

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