Помогите пожалуйста с jQuery

M2
На сайте с 11.01.2011
Offline
341
408

Не знаю, в чём дело, второй раз наступаю на эти грабли...

В общем имеем код jQuery:


$(document).ready(function()
{
//login
$('#btnLogin').bind('click', function()
{
$.ajax({
url: 'includes/ajax.php?mode=login',
data: $('#loginForm').serialize(),
type: 'POST',
dataType: 'json',
success: function(data)
{
alert(data);
}
});
});

});

Имеем также код HTML: (приведена значимая часть)


<form method="post" id="loginForm">
<table cellspacing="0" cellpadding="0">
<tr>
<td>Логин: </td>
<td><input name="login"></td>
</tr>
<tr>
<td>Пароль: </td>
<td><input type="password" name="pass"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" name="btn" id="btnLogin" value="Логинимся...">
</tr>
</table>
</form>

И имеем функцию php log_in():


function log_in($login, $password)
{
global $db;

//проверяем, есть ли такое имя
$query = 'SELECT user_id FROM users WHERE user_login = "'.$db->escape($login).'" AND user_pass = "'.$db->escape(md5($password)).'"';

$db->query($query) or die(mysql_error());

$rows = $db->get_rows_count();
echo $rows;

if ($rows < 1)
{
return false;
}

else
{
//пользователь обнаружен, проверяем наличие возможной оставшейся сессии
$query = 'SELECT session_auto_id FROM sessions WHERE user_id = (SELECT user_id FROM users WHERE user_login = "'.$db->escape($login).'")';

$db->query($query);
$rows = $db->get_rows_count();
if ($rows > 1)
{
return false;
}

//собственно, логинимся...
session_start();
setcookie('user', $login);
setcookie('date', time());

return true;

}


}

Собственно, суть какая... я хочу вывести объект data, ожидаю, что он будет в формате json. В результате никакого алерта не получаю, а в console.log пишется:


{msg:null}

Отдельно проверял функцию на работоспособность - всё нормально, возвращает true. Проблема явно в jQuery, но где именно - понять не могу... Второй раз уже начинаю писать эту форму и второй раз на этом обрываюсь. А хочется красивый логин сделать :)

Всем заранее спасибо за помощь :)

mark2011 добавил 09.02.2011 в 17:10

Решил проблему заменой json на html. Но всё равно хочется узнать, почему json так себя ведёт... вроде бы корректно кодирую, всё нормально.... по крайней мере в других проектах точно такой же код себя ведёт абсолютно корректно. А здесь...

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
ДП
На сайте с 23.11.2009
Offline
203
#1

Насколько я вижу, вы просто выводите данные напрямую через echo, т.е. у вас выводится число, а в формате json должно быть что-т типа {row:1} - тогда можно будет обратиться к этому значению через data.row - так что проблема похоже втом, что вы ответ сервера в json не кодируете.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий