Несколько форм и один приемник PHP - PullRequest
1 голос
/ 07 декабря 2010

MySQL генерирует формы на одной странице с одним и тем же действием и кнопкой отправки. Количество форм варьируется. Все они вызывают один и тот же файл PHP при отправке. Кроме того, у меня есть один файл PHP, который собирает данные при отправке. Смотрите пример ниже.

Проблема в том, что при отправке одной из форм значения путаются с разными полями из разных форм. Пример: когда форма1 отправлена, PHP получает значения формы 6.

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

Пример кода 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;

Какие-нибудь решения?

Ответы [ 3 ]

1 голос
/ 07 декабря 2010

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

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

if(isset($_POST('add_history1'))
{
}
1 голос
/ 07 декабря 2010

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

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

0 голосов
/ 07 декабря 2010

Если вы нажмете "отправить" в одной форме, браузер должен отправлять только значения из этой формы. Когда форма1 отправлена, PHP НЕ будет получать значения формы6. Возможно, вы неправильно закрыли тег формы или у вас отключился JavaScript.

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