JQuery AJAX функции формы (данные) - PullRequest
1 голос
/ 15 апреля 2010

Почему я получаю ответ «нет»?

jQuery для отправки данных в php-запрос

 $j.post("logincheck.php",{ 
username:$j('#username').attr('value'),
password:$j('#password').attr('value'),
rand:Math.random() } ,
function(data) {
  if(data=='yes') {alert('yes');}
  else {alert('no');}
  }
 );

Вот php-запрос

if(isset($_POST['username'])):
$username  = $_POST['username'];
$password  = $_POST['password'];
$posts   = mysql_query("SELECT * FROM users WHERE username='$username'");
$no_rows  = mysql_num_rows($posts );
while($row  = mysql_fetch_array($posts)): 
print 'yes';
endwhile;
else:
print 'no';
//header('location: index.php');
endif;
endif;

Ответы [ 4 ]

1 голос
/ 15 апреля 2010

Из вашего php-кода следует, что если у пользователя несколько сообщений, то «да» будет напечатано несколько раз. Это означает, что это утверждение будет верным, только если у пользователя ровно один пост:

if(data == 'yes')

Измените предложение else в javascript на следующее, чтобы увидеть, что возвращается при вызове ajax, и оставьте нам знать, что вы получаете.

alert(data);
0 голосов
/ 15 апреля 2010

Попробуйте ответить на этот вопрос:

{
 "valid" : "yes" // or "no"
}

и на вашем посту:

$j.post(url,{your stuff}, function(data){
   if(data.valid==="yes"){...}
},"json");

И вместо этого использовать .val () для получения ввода

0 голосов
/ 15 апреля 2010

Как насчет использования .val() вместо .attr('value').

Я имею в виду, это выстрел в темноте, но значение атрибута не обновляется, когда вы что-либо вводите, оно используется для установки значения формы по умолчанию, вместо этого метод .val() должен получить значение вход.

PS: Вы действительно проверяли, что ваш PHP-скрипт правильно получает данные?

Редактировать После проверки в jsFiddle оказывается, что оба должны работать нормально: -)

http://jsfiddle.net/cwPPp/

0 голосов
/ 15 апреля 2010

Попробуйте отладить, какой ответ вы получите от ajax.

Также, глядя на ваш скрипт, вы добавляете дополнительный endif; в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...