У меня MySQL формирует формы на одной странице с тем же действием и кнопкой отправки. Количество форм варьируется. Все они называют один и тот же файл PHP при его отправке. Кроме того, у меня есть один файл PHP, который собирает данные после отправки. См. Пример ниже.
Проблема заключается в том, когда отправляется одна из форм, значения путаются с разными полями из разных форм. Пример: Когда отправлен form1, PHP получает значения form6.
Как я могу убедиться, что каждая форма представляет свои собственные значения?
Пример кода HTML:
<form method="POST" action="index.php?action=newhistory" name="history_1"> <input type="hidden" name="id" value="1"> <input type="text" name="history"> <input type="submit" name="add_history" value="Submit"> </form> <form method="POST" action="index.php?action=newhistory" name="history_6"> <input type="hidden" name="id" value="6"> <input type="text" name="history"> <input type="submit" name="add_history" value="Submit"> </form>
Пример кода PHP:
case 'newhistory': $id = $_POST['id']; $history = $_POST['history']; $sql = mysql_query("INSERT INTO history (id, history) VALUES('".$id."', '".$history."')", $link); break;
Любые решения?
Он отправит контент, инкапсулированный тегами <form></form>
. Наличие атрибута action
нескольких форм на одной странице не должно создавать проблему, которую вы описываете.
Код, который вы написали, выглядит отлично. Проверьте свой HTML-код и убедитесь, что у вас есть теги corform <form></form>
окружающие элементы каждой формы.
Пожалуйста, используйте разные имена для кнопки отправки, затем проверьте.
if(isset($_POST('add_history')) { } if(isset($_POST('add_history1')) { }
Если вы нажмете submit в одной форме, браузер должен отправить только значения из этой формы. Когда form1 представлен, PHP не получит значения form6. Возможно, вы не закрыли тег формы должным образом, или какой-либо JavaScript будет диким.