Показать сообщение отдельно
  #1 (permalink)  
Старый 01.02.2011, 19:55
Аватар для zercs
Интересующийся
Отправить личное сообщение для zercs Посмотреть профиль Найти все сообщения от zercs
 
Регистрация: 01.02.2011
Сообщений: 19

ошибка в запросе (Ajax)
Привет, яваскриптеры. Прошу помочь с кодом, если не трудно.
Итак, инпут из html файла, в который юзер вводит login. js функция вызывается по событию onblur:
<input type="text" name="login" id="login" style="margin-left: 28px" onblur="checkLog();"/>


Ф-я checkLog() и обработчик запроса check_response() представлены ниже. Параметр log_data, который передается в первую функцию формирую по событию window.onload. Код ниже.

function checkLog(log_data) {
  	if (req2) {
  	req2.onreadystatechange = check_response;
	req2.open("POST", "scripts/check.php", true);
	req2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req2.send(log_data);
	return true;
    } else {return false;}
}
function check_response() {
	if (req2.readyState == 4) {
		if(req2.status == 200 || req2.status == 304) {
			var response = document.getElementById("log");
			response.innerHTML = req2.responseText;
			gotovim_form();
		}
			else { alert("Not correct request!");
			}
	}
}


По событию window.onload формирую переменную log_data:

window.onload = gotovim_form;
function gotovim_form() {

req2 = getXmlHttp();

if (!document.getElementById("form1")) {
	return;
	}
document.getElementById("form1").onblur = function() {
	var log_data = "";
	log_data+= this.elements[0].name;
	log_data+= "=";
	log_data+= escape(this.elements[0].value);
	log_data+= "&";
	return !checkLog(log_data);
	};
}


До сервера стучусь, кажется запрос в порядке. Текст check.php:

<?php
$login = $_POST['login'];

require_once 'config.php';
$link = @mysql_connect($config['mysql_host'].":".$config['mysql_port'], $config['mysql_login'], $config['mysql_password']) or die ($server['errorText']);
@mysql_select_db($config['mysql_db'], $link) or die ('Найти базу с таким именем не удалось!');
error_reporting(0);
Header("Content-Type: text/javascript; charset=windows-1251");
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

if ($login)
 { echo "yeah";
  echo $login;
 }
   else {
   echo "no";
   echo $login;
        }
?>


Пробелема в том, что независимо от количества символов в инпуте всегда выдается no, т.е. не приходит переменная login из пост запроса. Подскажите, пожалста, в чем проблема. Почти аналогичный скрипт для регистрации по событию submit работает нормально.
Ответить с цитированием