Сохранять значение кнопки отправки при использовании ссылки для отправки формы

#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();