Несколько форм и один приемник PHP

У меня 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; 

Любые решения?

Related of "Несколько форм и один приемник PHP"

Он отправит контент, инкапсулированный тегами <form></form> . Наличие атрибута action нескольких форм на одной странице не должно создавать проблему, которую вы описываете.

Код, который вы написали, выглядит отлично. Проверьте свой HTML-код и убедитесь, что у вас есть теги corform <form></form> окружающие элементы каждой формы.

Пожалуйста, используйте разные имена для кнопки отправки, затем проверьте.

 if(isset($_POST('add_history')) { } if(isset($_POST('add_history1')) { } 

Если вы нажмете submit в одной форме, браузер должен отправить только значения из этой формы. Когда form1 представлен, PHP не получит значения form6. Возможно, вы не закрыли тег формы должным образом, или какой-либо JavaScript будет диким.