Перенаправить на якорь на той же странице после отправки формы - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть веб-сайт с целевой страницей, а внизу страницы у меня есть форма. Все, что я хочу сделать, это показать сообщение проверки и снова перенаправить пользователя в форму, чтобы он мог просмотреть сообщение без прокрутки.

Код выглядит следующим образом ( он находится на той же странице ):

  //validation
      if (isset($_POST['submit'])) {                     
          $name = htmlspecialchars(stripslashes(trim($_POST['name'])));

          if (!preg_match("/^[A-Za-zÀ-ÖØ-öø-ÿ]/", $name)) {
              $name_error = 'invalid name';
          }
         //i want to redirect as soon as the validation finishes
        header('Location: http://localhost/myweb/index.php#contact');
      } 

<form id="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
  <input  type="text" name="name" id="name"> 
     <button type="submit" id="submit" name="submit">Send</button>
</form>

Я пробовал все следующее:

  • Использование window.location.href = 'index.php#contact'; в кнопке (onclick) и в форме (onsubmit)
  • Использование header в нескольких частях кода, также с exit();

Однако , и вот ключ, я не хочу использовать другую страницу php только для проверки (так как мне нужно было бы использовать session_start() и я хочу избежать файлов cookie) И, а я не хочу использовать AJAX запрос XMLHttp.

Возможно ли это сделать?

1 Ответ

0 голосов
/ 07 апреля 2020

Я использую #contact в форме действия вот так

<form id="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>#contact" method="POST">

Вы пробовали это?

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