Как проверить, отправлена ​​ли форма через javascript? - PullRequest
5 голосов
/ 23 мая 2010

У меня есть эта обычная кнопка отправки, которая отправляет форму, подобную этой:

<form method="post" id="form_submit">
...
<input class="button" type="submit" name="Submit" value="Submit">
</form>

И я проверяю, нажата ли кнопка отправки, используя это:

if(isset($_POST['Submit'])){
   //update DB
}

Теперь у меня естьотправить ссылку, используя jquery:

<a href="#" onclick="publish(); return false;">Submit</a>

JS-код:

$("#form_submit").submit();

Какой альтернативный способ используется здесь для if(isset($_POST['Submit'])), так как я отправляю форму с использованием javascript?

Ответы [ 4 ]

5 голосов
/ 23 мая 2010

Если я вас правильно понял, попробуйте это:

if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
 // your code.........
}
4 голосов
/ 23 мая 2010

Вы должны добавить скрытый ввод <input type="hidden" name="formsubmit" value="yes" /> в форму, которая всегда будет отправлена, и проверить это вместо кнопки (, которая отправляется только при нажатии на нее .. )

1 голос
/ 23 мая 2010

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

<form method="post" id="form_submit">
...
<input type="hidden" name="Submit">
</form>

Будет определена переменная $ _ POST ['Submit'].

0 голосов
/ 23 мая 2010

Лучшее решение - «Не делай этого». Если вы хотите отправить форму, используйте кнопку «Отправить» (не используйте ее в качестве побочного эффекта при нажатии на гиперссылку в верхней части страницы). Любой JavaScript, который вы хотите запустить, может быть обработан в событии submit формы.

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

...