Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка данных без обновления
 
 автор: Dez   (17.11.2006 в 16:57)   письмо автору
 
 

Хотел сделать проверку данных при регистрации без обновления страницы, как это сделанно в IPB(invision power board)
Поидее это все идет на яве, кто приведет хотя бы маленький примерчик буду благодарен.
Вырезать код не получается :(

   
 
 автор: 12345   (17.11.2006 в 17:21)   письмо автору
 
   для: Dez   (17.11.2006 в 16:57)
 

См. "Короткий пример XMLHttpRequest", а к форме сам прикрутишь.

Кстати, если будет решение - выложи, а то иногда спрашивают.
Не поддерживается Опера-7. (А в IPB должны были её поддержать, используя фрейм.)

   
 
 автор: m@rchello   (17.11.2006 в 17:59)   письмо автору
 
   для: 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 
"Кто ты?"
?>

   
 
 автор: Dez   (17.11.2006 в 18:10)   письмо автору
 
   для: m@rchello   (17.11.2006 в 17:59)
 

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

   
 
 автор: Dez   (17.11.2006 в 18:30)   письмо автору
 
   для: Dez   (17.11.2006 в 18:10)
 

Все, разобрался, если возникнут вопросы еще напишу, Огромное спасибо
onFocusout

   
 
 автор: 12345   (17.11.2006 в 18:36)   письмо автору
 
   для: Dez   (17.11.2006 в 18:30)
 

Где это такое событие? Везде оно называется onBlur.

   
 
 автор: Dez   (17.11.2006 в 19:05)   письмо автору
 
   для: 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";
}
?> 

Как сделать что типа этого? только это не работает, а я хочу что бы работало :)
Спасибо

   
 
 автор: m@rchello   (17.11.2006 в 19:24)   письмо автору
 
   для: Dez   (17.11.2006 в 19:05)
 

Ну во первых (как уже было сказано выше) onFocusOut нужно заменить на onBlur
А во вторых для чего именно вам нужен этот скрипт?

   
 
 автор: Dez   (17.11.2006 в 19:26)   письмо автору
 
   для: m@rchello   (17.11.2006 в 19:24)
 

Для проверки введенных данных при регистрации
Логин, пароль, email и т.д.

   
 
 автор: m@rchello   (18.11.2006 в 07:51)   письмо автору
 
   для: 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";
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования