#javascript #forms
#javascript #формы
Вопрос:
я пытаюсь создать ссылку, которая отправляет форму. Я использую это и работает нормально :
<a name="submit" href="javascript:document.theForm.submit();" class="rollover-button gray small"><span>Send Message</span></a>
Однако у меня проблема. Моя предыдущая кнопка отправки была :
<input type="submit" name="submit" value="Send Message" />
При нажатии на это я получал значение $ _POST [‘submit’], которое я проверял с помощью isset в моем php-скрипте, чтобы увидеть, отправлена форма или нет. Однако это не работает с моей ссылкой отправки. Кто-нибудь знает, как я могу это сделать?
Редактировать:
Я попробовал это, как было предложено :
<form action="." name="theForm" class="contactForm" method="post">
<input type="hidden" name="submit" value="Send Message" />
</form>
<a name="submit" href="javascript:document.theForm.submit();" class="rollover-button gray small"><span>Send Message</span></a>
Но все равно не работает.
Комментарии:
1. Почему вы не используете кнопку отправки? Не имеет смысла использовать javascript для замены встроенной функциональности браузера. В любом случае, вызов элемента управления формы «submit» затеняет метод отправки формы, поэтому вы не можете его вызвать, т. е.
document.theForm.submit
Ссылается на кнопку, а не на метод.2. Это потому, что у меня есть некоторые стили, которые я хочу использовать и которые относятся только к ссылкам, а не к кнопкам. Не все сводится к необработанной функциональности 🙂
Ответ №1:
Вы можете создать тип ввода hidden и проверить его существование:
if (isset($_POST['hiddenName'])) {....}
Ответ №2:
Вместо этого вы можете использовать скрытое поле. Таким образом, когда форма отправлена, вы можете проверить, существует ли скрытый элемент.
Вот так:
<input type="hidden" name="submit" value="Send Message" />
Таким образом, вы можете проверить наличие $_POST[‘submit’] при отправке формы. Просто убедитесь, что скрытый <input> находится внутри элемента <form>, поэтому он будет отправлен вместе с остальной частью формы.
Ответ №3:
добавьте скрытый ввод.
<input type="hidden" name="submit" value="Send Message" />
это не будет видно пользователю, но оно будет отправлено вместе с содержимым формы.
Комментарии:
1. -1 — элемент управления формой с именем «submit» затеняет метод отправки формы, поэтому вы не сможете его вызвать.
2. @RobG Вы правы. Я отвечал, не задумываясь обо всех последствиях. Но все же, мой ответ верен, потому что это была не та проблема, о которой спрашивал OP. OP должен изменить имя ввода на name=»formsubmitted», а затем проверить наличие $_POST[‘formsubmitted’] в своем PHP-коде.
3. 1. удалите name=»submit» из вашего тега <a> 2. переименуйте свой скрытый ввод в name =»somethingelse» и проверьте наличие $ _POST[‘somthingelse’] в вашем PHP-коде 3. и поместите action = «» в свою форму, приятель
Ответ №4:
Вы всегда можете скрыть кнопку отправки (с помощью css display: none
) и щелкнуть по ней с помощью JavaScript:
document.forms.theForm.elements.submit.click();