|
|
|
| Хотел сделать проверку данных при регистрации без обновления страницы, как это сделанно в IPB(invision power board)
Поидее это все идет на яве, кто приведет хотя бы маленький примерчик буду благодарен.
Вырезать код не получается :( | |
|
|
|
|
|
|
|
для: Dez
(17.11.2006 в 16:57)
| | См. "Короткий пример XMLHttpRequest", а к форме сам прикрутишь.
Кстати, если будет решение - выложи, а то иногда спрашивают.
Не поддерживается Опера-7. (А в IPB должны были её поддержать, используя фрейм.) | |
|
|
|
|
|
|
|
для: 12345
(17.11.2006 в 17:21)
| | вот что то вроде того что нужно :-)
код файла hello.html
<html>
<head>
<title>XML Test</title>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<script language="javascript">
var req;
function loadDoc(url)
{
url = url +'?name=' + document.forms.form.login.value;
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send(null);
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req)
{
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send();
}
}
}
function processReqChange()
{
if (req.readyState == 4)
{
if (req.status == 200)
{
document.getElementById('forums').innerHTML=req.responseText
}
else
{
alert("Неудалось получить данные:\n" +req.statusText);
}
}
}
</script>
</head>
<body>
<form name=form>
<input type=text name=login><br>
<input type=button value="Send" onclick="loadDoc('handler_hello.php')">
<div id="forums"></div>
</body>
</html>
|
А вот код подгружаемого файла handler_hello.php
<?
header("Content-type: text/plain; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
if($_GET['name']=="m@rchello")
echo "Привет чувак!!!";
else
echo "Кто ты?"
?>
|
| |
|
|
|
|
|
|
|
для: m@rchello
(17.11.2006 в 17:59)
| | Интерестно, а можно ли сделать что бы было без нажатия на кнопку, только фокус с поля убрался и сразу пошла бы проверка. | |
|
|
|
|
|
|
|
для: Dez
(17.11.2006 в 18:10)
| | Все, разобрался, если возникнут вопросы еще напишу, Огромное спасибо
onFocusout | |
|
|
|
|
|
|
|
для: Dez
(17.11.2006 в 18:30)
| | Где это такое событие? Везде оно называется onBlur. | |
|
|
|
|
|
|
|
для: 12345
(17.11.2006 в 18:36)
| | Ну... я в яве не бум бум.
Помогите еще :)
index.php
<html>
<head>
<title>XML Test</title>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<script language="javascript">
var req;
function loadDoc(url)
{
url = url +'?name=' + document.forms.form.login.value;
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send(null);
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req)
{
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send();
}
}
}
function processReqChange()
{
if (req.readyState == 4)
{
if (req.status == 200)
{
document.getElementById('forums').innerHTML=req.responseText
}
else
{
alert("Неудалось получить данные:\n" +req.statusText);
}
}
}
</script>
</head>
<body>
<form name=form>
<input type=text name="field1" onFocusOut="loadDoc('send.php')"><br>
<div id="forums"><?=$msg1?></div>
<input type=text name="field2" onFocusOut="loadDoc('send.php')"><br>
<div id="forums"><?=$msg2?></div>
<input type=text name="field3" onFocusOut="loadDoc('send.php')"><br>
<div id="forums"><?=$msg3?></div>
</form>
</body>
</html>
|
send.php
<?
header("Content-type: text/plain; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
if($_GET['field1']=="1") {
$msg1 = "true";
}else {
$msg1= "false";
}
if($_GET['field2']=="2") {
$msg2 = "true";
}else {
$msg2= "false";
}
if($_GET['field3']=="3") {
$msg3 = "true";
}else {
$msg3= "false";
}
?>
|
Как сделать что типа этого? только это не работает, а я хочу что бы работало :)
Спасибо | |
|
|
|
|
|
|
|
для: Dez
(17.11.2006 в 19:05)
| | Ну во первых (как уже было сказано выше) onFocusOut нужно заменить на onBlur
А во вторых для чего именно вам нужен этот скрипт? | |
|
|
|
|
|
|
|
для: m@rchello
(17.11.2006 в 19:24)
| | Для проверки введенных данных при регистрации
Логин, пароль, email и т.д. | |
|
|
|
|
|
|
|
для: Dez
(17.11.2006 в 19:26)
| | index.php
<html>
<head>
<title>XML Test</title>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<script language="javascript">
var req;
blok = '';
function loadDoc(url,pole_v,zn,bl)
{
blok=bl;
url = url + '?' + pole_v + '=' + zn;
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send(null);
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req)
{
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send();
}
}
}
function processReqChange()
{
if (req.readyState == 4)
{
if (req.status == 200)
{
document.getElementById(blok).innerHTML=req.responseText
}
else
{
alert("Не удалось получить данные:\n" +req.statusText);
}
}
}
</script>
</head>
<body>
<form name=form>
<input type=text name="field1" onBlur="loadDoc('send.php','field1',document.forms.form.field1.value,'er1')"><br>
<div id="er1"></div>
<input type=text name="field2" onBlur="loadDoc('send.php','field2',document.forms.form.field2.value,'er2')"><br>
<div id="er2"></div>
<input type=text name="field3" onBlur="loadDoc('send.php','field3',document.forms.form.field3.value,'er3')"><br>
<div id="er3"></div>
</form>
</body>
</html>
|
send.php
<?
header("Content-type: text/plain; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
if(@$_GET['field1']!="")
{
if($_GET['field1']==1)
echo "true";
else
echo "false";
}
if(@$_GET['field2']!="")
{
if($_GET['field2']==2)
echo "true";
else
echo "false";
}
if(@$_GET['field3']!="")
{
if($_GET['field3']==3)
echo "true";
else
echo "false";
}
?>
|
| |
|
|
|