проверка формы с помощью javascript на php

Я нахожу этот код в W3Schools. Речь идет о проверке формы с помощью Javascript.

когда пользователь ленты неправильный формат почты, появляется предупреждение.

когда я проверяю код, который я вижу в форме onsubmit="return validateForm();, и функция возвращает false в случае ошибки.

поэтому мой вопрос заключается в том, как получить логическое значение из javascript, чтобы использовать его в PHP для записи сообщения об ошибке вместо использования окна сообщения.

Это мой код:

<html>
<head>
    <script type="text/javascript">
    function validateForm()
    {
    var x=document.forms["myForm"]["email"].value
    var atpos=x.indexOf("@");
    var dotpos=x.lastIndexOf(".");
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
      {
      alert("Not a valid e-mail address");
      return false;
      }
    }
    </script>
    </head>

    <body>
    <form name="myForm" action="demo_form.asp" onsubmit="return validateForm();" method="post">
    Email: <input type="text" name="email">
    <input type="submit" value="Submit">
    </form>
</body>

</html>

спасибо продвижение.

Али

5 ответов


вы не можете получить логическое значение из JavaScript. То, что вам нужно сделать, это иметь ошибку div готов заранее. Что-то вроде этого:--3-->

<body>
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm();" method="post">
Email: <input type="text" name="email">
<div id="error"></div>
<input type="submit" value="Submit">
</form>

добавьте css, чтобы скрыть его. Затем в форме проверки используйте javascript для изменения HTML-кода ошибки div.

  if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
      document.getElementById("error").innerHTML="Not a valid e-mail address";
      return false;
  }

" return false; " часть состоит в том, чтобы сообщить форме не отправлять. Как упоминалось в других ответах, PHP и Javascript не взаимодействуют. PHP-это серверная сторона, Javascript-клиентская сторона. Они не разговаривают с друг с другом. Однако они могут изменять HTML. Просто помните, что Javascript всегда работает в браузере. Поэтому, если вам нужно отправить вещи на PHP, вам нужно использовать AJAX для вызова скрипта PHP на стороне сервера и отправки информации таким образом. Однако в большинстве случаев, когда вы используете Javascript, информация нужна не PHP, а пользователю. Поэтому использование Javascript для изменения HTML делает трюк.


if (..)
{
   document.getElementByID('error').InnerHTML = "Not a valid e-mail address!";
   return false;
}
else
{
   document.getElementByID('error').InnerHTML = "";
}

и в вашей разметке добавьте:

<span id="error"></span>

вне использования AJAX вы не можете. Помните, что PHP - это язык на стороне сервера, и что JavaScript работает на клиенте в браузере. К тому времени, когда PHP отображает страницу в браузере, она уже обработана. Вам нужно два уровня проверки-Проверка JavaScript и проверка PHP. Почему? Потому что JavaScript можно отключить в браузере. Что делает его бесполезным в качестве меры безопасности. Проверка JavaScript должна использоваться только как способ улучшения работы пользователя опыт.

наконец, не ходите в w3schools. Большая часть его информации недействительна (см. сайт http://www.w3fools.com для получения дополнительной информации). Вместо этого используйте сеть разработчиков Mozilla:https://developer.mozilla.org/en-US/learn/


проще всего сделать отображение в функции. Замените предупреждение чем-то вроде: -

документ.getElementById ("errormessage").innerHTML будет="не действует адрес электронной почты";

Вам также понадобится DIV В вашем HTML с идентификатором errormessage.


Я бы не использовал PHP для этого.

<html>
<head>
<script type="text/javascript">
function validateForm()
{
var x=document.forms["myForm"]["email"].value
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
  document.getElementById('errorMsg').style.display = 'block';
  return false;
  }
}
</script>
</head>

<body>
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm();" method="post">
Email: <input type="text" name="email">
<input type="submit" value="Submit">
<div id="errorMsg" style="display: none;">Not valid email</div>
</form>
</body>

</html>

таким образом, вам не придется возвращаться на свой сервер.