html — контактная форма PHP — публикация в сценарии отправки, при неудачной проверке возврат в контактную форму & amp; привязка страницы

мой первый пост, так что будь нежнее …
У меня есть контактная форма PHP, где на странице php (contact.php)

<form id="contact" method="post" action="send.php">

При нажатии кнопки отправки данные отправляются в скрипт send.php для проверки. Если проверка прошла успешно, пользователь просматривает страницу sent.html, где отображается сообщение «Ваше сообщение отправлено — спасибо».

$message = "Your Message Has Been Sent - Thank You";
include "sent.html";

Однако, если проверка завершается неудачно, например, если поле оставлено пустым, проверка не удается отправить & $ сообщение отображается внутри формы, а затем на contact.php …

if ((!$fname) OR (!$lname) OR (!$email) OR (!$enquiry))
{
$message = "ERROR: ALL FEILDS MARKED * MUST BE COMPLETED";
include "contact.php";
exit();

Сообщение отображается в форме страницы contact.php с использованием:

<?php
print "$message";
?>

Это работает, но форма находится на полпути вниз по странице, и пользователь должен прокрутить вниз, чтобы просмотреть неудачную отправку сообщения, которое может быть пропущено, и плохо просматривается … Как я могу убедиться, что при неудачной проверке контакт. php страница отображается с формой в верхней части страницы? Могу ли я применить привязку, метод или возврат к идентификатору формы? Заранее спасибо.

Обновить:
Извините, я должен был сказать, что в скрипте send.php есть другая проверка, которую отправляет форма action = send.php, которая запрещает веб-адреса для каждого поля & проверяет поле электронной почты и т. д., так что, я думаю, я надеялся, что смогу изменить приведенный ниже код, чтобы перенаправить его на якорь через идентификатор формы на странице contact.php:

if ((!$fname) OR (!$lname) OR (!$email) OR (!$enquiry))
{
$message = "ERROR: ALL FEILDS MARKED * MUST BE COMPLETED";
include "contact.php";
exit();
}

ОБНОВЛЕНИЕ: Спасибо всем за ваше время & комментарии, это действительно ценится. Я закончил тем, что создал новую страницу, которая содержала только форму, и изменил send.php, чтобы показать следующее:

if ((!$fname) OR (!$lname) OR (!$email) OR (!$enquiry))
{
$message = "ERROR: ALL FEILDS MARKED * MUST BE COMPLETED";
include "newform.php";
exit();
}

Не самое лучшее, что я знаю, но работает все-таки, я подумал, что если пользователь хочет заполнить форму, по крайней мере, он сталкивается с формой с отображаемым сообщением об ошибке, которое легко просмотреть. Я пытался использовать

onsubmit="document.location.href='http://fullurl/contact.php#formtop'"

Это имело частичный успех, так как игрушка могла видеть, как форма фокусировалась на якоре в течение секунды, прежде чем прокрутить до верхней части страницы, я полагаю, что onsubmit работал до тех пор, пока сценарий send.php не сорвал это из воды.
@ Сергей: sent.html был ленивым способом сообщить пользователю, что сообщение было отправлено, на этой html-странице не отображается форма, так как после очистки формы успешная проверка сообщения не была мне известна … Я дизайнер интерфейса, а не кодер, как вы, ребята.
ура
Gaz

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector