проверка формы с помощью 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>
таким образом, вам не придется возвращаться на свой сервер.