2013-09-25 3 views
0

В настоящее время я разрабатываю веб-сайт, который читает информацию из базы данных MySQL в PHP и печатает форму для каждой строки. Это делается с использованием цикла while, поэтому форма повторяется внутри цикла. Однако всякий раз, когда я отправляю форму, многие значения не публикуются, потому что на странице есть формы с тем же именем и идентификатором.HTML Больше, чем одна форма с тем же именем/ID

Как распечатать одну форму на элемент в базе данных и обработать эту форму соответственно? Благодаря!

while (*this goes through each row in the database) { 
    echo "<form name='myForm' id='myForm' method='post' action=''> 
      <input type='text' name='text1'> 
      </form>"; 
} 

Я хочу использовать цикл для распечатки динамического числа форм.

+0

Вместо этого используйте 'class',' id' должен быть уникальным. –

ответ

2

Просто измените имя и идентификатор формы с каждой итерацией, добавив счетчик к вашему циклу.

$i = 0; 
while (*this goes through each row in the database) { 
    echo "<form name='myForm" . $i . "' id='myForm" . $i . "' method='post' action=''> 
      <input type='text' name='text1'> 
      </form>"; 
    $i++; 
} 

Или, возможно, даже лучше, если у вас есть какой-то уникальный идентификатор базы данных для каждой записи, использовать это значение ID вместо счетчика.

+0

Мне это нравится, но как я могу обработать и проверить форму? Мне нужно написать функцию для каждого имени формы? Благодаря! –

+1

Нет. Вы можете добавить класс в формы и либо использовать jQuery, либо 'document.getElementsByClassName', чтобы захватить их все сразу. –

+1

@felix_xiao Вы можете использовать одну функцию проверки, просто передайте представленную в настоящее время форму функции (т. Е. Используя 'this') и действуйте только в переданной форме и ее дочерних входах. –

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