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

HTML+CSS+JavaScript

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

 

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

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

тема: Проверка логина без ререзагрузки страницы
 
 автор: serjinio   (10.05.2009 в 12:47)   письмо автору
 
 

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function checkLogin( 
{
var login = document.getElementById('login').value;
$("#logincheck").html('<img src="indicator.gif" />');
$("#logincheck").load("logincheck.php", { login: login });
}

</script>
</head>

<body>
<form id="regform" name="regform" method="post" action="">
  <label>Логин:<input type="text" name="login" id="login" /></label>
  <span class="checkit" style="cursor:pointer;" onclick="checkLogin();">Проверить</span>
  <div id="logincheck"></div>

</form>


logincheck.php
<?php
header
('Content-Type: text/html; charset=utf-8');
include_once (
'../config.php');//сonnect BD


if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
    {
    
$login $_REQUEST['login'];
    echo 
'<br/>login : '.$login;
  }

Никакой реакции в чем может быть ошибка?

  Ответить  
 
 автор: PAT   (10.05.2009 в 13:12)   письмо автору
 
   для: serjinio   (10.05.2009 в 12:47)
 

>в чем может быть ошибка?

Ошибка ваша - в бездумном использовании JS-библиотек.

Связь страницы с сервером организуется 15-ю строчками чистого JS-кода.
Но вам же этого не надо.
Вам же надо, как и всем - ОБЯЗАТЕЛЬНО использовать jquery.
Без jquery сейчас же никуда! Это же - МОДНО!

Блондинки от программирования, плять...

  Ответить  
 
 автор: serjinio   (10.05.2009 в 13:31)   письмо автору
 
   для: PAT   (10.05.2009 в 13:12)
 

Ошибка ваша - в бездумном использовании JS-библиотек.
Не в этом..просто никогда не занимался JS :) взял готовый пример и разбираюсь..
Помогите с кодом связи с сервером посредством JS ,есть желание разобраться с данным примером

  Ответить  
 
 автор: PAT   (10.05.2009 в 14:00)   письмо автору
 
   для: serjinio   (10.05.2009 в 13:31)
 

см., например, http://codecenter.awardspace.com/selects.html

1. Сначала - создаёте объект htReg (переписывайте 1 к 1)

2. По клику вызываете функцию sendReq (), которой передаёте проверяемый логин

onclick="sendReq (document.getElementById ('login').value)"

function sendReq (x)
{
htReq.open ('get', 'logincheck.php?' + encodeURIComponent (x));
htReq.onreadystatechange = getReq;
htReq.send (null);
}

3. Сервер уже САМ, отдав ответ, запустит работу функции getReq ()
function getReq () {if (htReq.readyState == 4) myFunc (htReq.responseText)}

4. Откуда последует вызов ВАШЕЙ_ФУНКЦИИ myFunc, в которой можете делать всё что хотите с полученной строкой htReq.responseText от сервера.

Для тестирования просто посмотрите - что именно получено от cервера:
function myFunc (x) {alert (x)}


---------
Естественно, переработайте скрипт logincheck.php - чтобы он обрабатывал QUERY_STRING - пример простейшего такого файла найдёте по указанной ссылке прямо на странице.

  Ответить  
 
 автор: serjinio   (10.05.2009 в 19:55)   письмо автору
 
   для: PAT   (10.05.2009 в 14:00)
 

Спасибо PAT,кое что прояснилось

<script type="text/javascript" language="javascript">
//сначала создаём реквест с учётом индивидуальных особенностей браузеров
if (navigator.appName == 'Microsoft Internet Explorer')htReq = new ActiveXObject ('Microsoft.XMLHTTP');
else htReq = new XMLHttpRequest ();
function getReq () 
 {
     if (htReq.readyState == 4) 
          {
             if(htReq.status == 200) 
                 {
                //если реквест нормально обработался на сервере и пришёл нормальный ответ то
           myFunc (htReq.responseText);
                 }
          }
 }

function sendReq (x)
{
//открываем реквест и задаём  начальные параметры
    htReq.open ('get', 'logincheck.php?' + encodeURIComponent (x), true);
//при смене статуса реквеста будет вызываться функция getReq()    
    htReq.onreadystatechange = getReq;
    //посылаем реквест на сервер
    htReq.send (null);
}
  //тут и получаем конечные данные
function myFunc (x) 
{
alert (x)

}
</script>
<form id="regform" name="regform" method="post" action="logincheck.php">
  <label>Логин:<input type="text" name="login" id="login" /></label>
  <span class="checkit" style="cursor:pointer;" onclick="sendReq (document.getElementById ('login').value)">Проверить</span>
  <div id="logincheck"></div>
</form>


а как вместо alert (x) вывести значение
$q_str = $_SERVER['QUERY_STRING'];
echo 'login : '.$q_str;

в <div id="logincheck"></div>

  Ответить  
 
 автор: Balamut182   (10.05.2009 в 21:19)   письмо автору
 
   для: serjinio   (10.05.2009 в 19:55)
 

$('#logincheck').text('ТУТ ВАШ ТЕКСТ');
кстати зря хаят jquery - вместо этих 15 строк в jquery будет одна

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function checkLogin( 
{
var login = document.getElementById('login').value;
$("#logincheck").html('<img src="indicator.gif" />');
$.post("logincheck.php". {login: $('#login').val()}, function(data){
    $('#logincheck').text(data);
})
}

</script>
</head>

<body>
<form id="regform" name="regform" method="post" action="">
  <label>Логин:<input type="text" name="login" id="login" /></label>
  <span class="checkit" style="cursor:pointer;" onclick="checkLogin();">Проверить</span>
  <div id="logincheck"></div>

</form>



<?php
include_once ('../config.php');//сonnect BD
if($_POST['login'] == $login) print 'login : '.$login;
exit;

  Ответить  
 
 автор: PAT   (10.05.2009 в 21:43)   письмо автору
 
   для: Balamut182   (10.05.2009 в 21:19)
 

>кстати зря хаят jquery - вместо этих 15 строк в jquery будет одна

А скоКА строк в самом jquery-1.3.2.min.js?
Пересчитайте :-)

  Ответить  
 
 автор: PAT   (10.05.2009 в 21:45)   письмо автору
 
   для: serjinio   (10.05.2009 в 19:55)
 

function myFunc (x) 
{
document.getElementById ('logincheck').innerHTML = x;
}

  Ответить  
 
 автор: Balamut182   (10.05.2009 в 22:10)   письмо автору
 
   для: PAT   (10.05.2009 в 21:45)
 

одна. но длиннаяяяя :)
зато не надо парица с кроссбраузерностью + есть много удобных функций
ессно использовать jquery только для того чтобы выполнить 1 функцию не стоит, а вот если писать большой код - с jquery удобнее

  Ответить  
 
 автор: fire_f12   (18.05.2009 в 09:22)   письмо автору
 
   для: Balamut182   (10.05.2009 в 22:10)
 

Все правильно, если вопрос касается разработки коммерческого проекта и есть конкретные сроки то выдумывать велосипед нет смысла, никто денег на за километры кода написанного вручную не даст, гораздо целесообразней использовать библиотеки. а jQuery лучше не придумаеш.
ну разве не удобно использовать вместо.

document.getElementById ('login').value => $('#login').val()
или
document.getElementById ('logincheck').innerHTML => $('#logincheck').html()


<script type="text/javascript">
  function checkLogin()
  {
    $('#login_info').html('идет обработка данных');
    $.post('login_ajax.php',{login: $('#login').val(), pass:$('#pass').val()  },
        function(data)
        {
            if (data != 'empty')
            {
               $('#login_info').html(data);
            }
        }
     );
  }
</script>

  Ответить  
 
 автор: PAT   (18.05.2009 в 12:25)   письмо автору
 
   для: fire_f12   (18.05.2009 в 09:22)
 

>"если вопрос касается разработки коммерческого проекта"
то обращаются обычно к СПЕЦИАЛИСТУ

>"выдумывать велосипед нет смысла"
у СПЕЦИАЛИСТА имеются давно
разработанные и обсосанные со всех сторон СВОИ конкретные решения
конкретных часто встречающихся проблем.

>"никто денег на за километры кода написанного вручную не даст"
Неспециалисту действительно денег не дадут - хоть километры он испишет,
хоть чужой библиотекой воспользуется. Только вот когда неспециалист
пользуется чужой библиотекой, он может ВРЕМЕННО создать видимость
своей "доделанности".

>"ну разве не удобно использовать"
СПЕЦИАЛИСТ от неспециалиста отличается тем, что он знает и понимает -
как ВСЁ, им написанное, работает - от первого и до последнего символа.
А неспециалист потому и использует чужое, потому что ему В ПРИНЦИПЕ
не хочется понимать - как и что работает.

[поправлено модератором]

  Ответить  
 
 автор: fire_f12   (18.05.2009 в 17:44)   письмо автору
 
   для: PAT   (18.05.2009 в 12:25)
 

без комментариев... динозавры обречены на вымирание...
http://www.linux.org.ru/view-message.jsp?msgid=3129559

  Ответить  
 
 автор: psychomc   (18.05.2009 в 18:19)   письмо автору
 
   для: PAT   (18.05.2009 в 12:25)
 

жаль что поправили
такой пост был...

  Ответить  
Rambler's Top100
вверх

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