КОлко ли не го мъчих следното, но така и не можах да намеря решение.Вижте тук:
ЦЪК.Направил съм го ,за да ви покажа какво имам в предвид.Имам 2 файла - proba.php и check.php.
Ето и кодовете на proba.php:
и съответно на check.php:
Та ето и малко обяснение.При въвеждане на текст в полето, когато се махне курсова от полето, то бива валидирано чрез AJAX с помоща на файла check.php, където се намира и php скрипта,който проверява.Пробвайте сами да въведете нещо на кирилица!.
Едно показва при валидацията, а ако натиснете бутона SUBMIT, съвсем друг е резултата.Нарочно съм напрвил съдържанието на полето да се изпраща по метода GET към същата страница, която и фактически валидира!
Някой може ли да ми обясни защо е така?
ЦЪК.Направил съм го ,за да ви покажа какво имам в предвид.Имам 2 файла - proba.php и check.php.
Ето и кодовете на proba.php:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<script type="text/javascript">
var xmlHttp = false;
function pageOnLoad()
{
// create xmlHttp object
if (window.XMLHttpRequest)
{
// Mozilla / Firefox
xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
alert('Вашият браузър не поддържа AJAX!');
exit();
}
}
function validatefield(el)
{
url = "http://emagi.host-bg.info/check.php?" + el.id + "=" + encodeURIComponent(el.value);
div = document.getElementById(el.id + '_result');
xmlHttp.open('GET', url, true);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4)
{
div.innerHTML = xmlHttp.responseText;
}
}
xmlHttp.send(null);
}
function validatepass(el)
{
var pass1 = document.getElementById('pass1').value;
url = "http://localhost/check.php?pass1="+encodeURIComponent(pass1)+"&" + el.id + "=" + encodeURIComponent(el.value);
div = document.getElementById(el.id + '_result');
xmlHttp.open('GET', url, true);
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4)
{
div.innerHTML = xmlHttp.responseText;
}
}
xmlHttp.send(null);
}
</script>
</head>
<body onload="pageOnLoad();">
<form method="get" action="check.php">
<table width="0" border="0" cellpadding="0" cellspacing="1">
<tr>
<td class="register">ггг<span style="color:red">*</span></td>
<td class="form1"><input type="text" name="name" onblur="validatefield(this);" id="name" tabindex="1" size="12"/></td><td class="ajax"><div id="name_result" align="left"></div></td>
</tr>
<tr>
<td><input type="submit" value="Send" />
</td>
</tr>
</table>
</form>
</body>
</html>
и съответно на check.php:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>
<body>
<?php
$text = $_GET['name'];
echo $text."<br />";
$var = !preg_match("/[^a-zA-Zа-яА-Я ]/", $text) ? 'Success' : 'Wrong';
echo $var;
?>
</body>
</html>
Едно показва при валидацията, а ако натиснете бутона SUBMIT, съвсем друг е резултата.Нарочно съм напрвил съдържанието на полето да се изпраща по метода GET към същата страница, която и фактически валидира!
Някой може ли да ми обясни защо е така?