Отправляются ли входные данные в отдельных формах при нажатии кнопки «Отправить»? - PullRequest
2 голосов
/ 01 ноября 2008

Я пытаюсь создать страницу в php, которая берет строки из базы данных, отображает их, а затем дает зрителю возможность повысить или понизить конкретную запись. Вот фрагмент кода:

echo("<form action=\"vote.php\" method=\"post\"> \n");
echo("<INPUT type=\"hidden\" name=\"idnum\" value=\"".$row[0]."\">");
echo("<INPUT type=\"submit\" name=\"up\" value=\"Upvote.\">  \n");
echo("<INPUT type=\"submit\" name=\"down\" value=\"Downvote\"> ");
echo("<form/>\n");

Проблема в том, что, когда я нажимаю кнопку отправки, значение для idnum, которое отправляется, основывается на том, которое кажется самым дальним вниз. Поэтому у меня возникает вопрос: при нажатии кнопки «Отправить» значения для всех входных данных на отправленной странице?

Ответы [ 4 ]

8 голосов
/ 01 ноября 2008

Ваш тег формы не закрыт должным образом. У вас есть <form/>, но оно должно быть </form>.

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

4 голосов
/ 01 ноября 2008

Хотя это не помогло бы решить эту конкретную проблему, я бы порекомендовал не смешивать вашу разметку с вашей логикой, где это возможно. Это намного более читабельно, а также гораздо более редактируемо:

<form action="vote.php" method="post">
    <input type="hidden" name="idnum" value="<?php echo $row[0]; ?>">
    <input type="submit" name="up" value="Upvote.">
    <input type="submit" name="down" value="Downvote">
</form>
3 голосов
/ 01 ноября 2008

Проблема с вашим html в том, что у вас должно быть </form>, а не <form/>.

3 голосов
/ 01 ноября 2008

Ваша форма не закрыта должным образом. Используйте </form> вместо <form/>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...