вызов данных Json возвращает неопределенный - PullRequest
0 голосов
/ 06 сентября 2010

Когда я вызываю объект json из php-файла, он возвращает undefined. Я вижу все записи данных alert(data), но когда я записываю оповещение (data.books), оно возвращает неопределенное

$JSON = '

{
  "books": {
 "book1": "firstbook",
 "book2": "secondbook"
  }
  }
';

и я называю это jquery

jQuery('#login').live('submit',function(event) {


$.ajax({
    url: 'lib/login.php',
    type: 'POST',
    dataType: 'json',
    data: $('#login').serialize(),
  success: function(data ) {

alert(' ' +data.books);

  if(data.books.book1){  
alert("OK"); 
}else
{
alert("error");   
}
}

 });

   return false;


});

EDIT Вот как он возвращает предупреждение (данные)

    {

  "books": {

  "book1": "firstbook",

  "book2": "secondbook"

}

}

Ответы [ 2 ]

0 голосов
/ 06 сентября 2010

Я изменил в .php файле как

$arr = array ( "book1" => "firstbook" ,"book2" => "secondbook" );

, теперь он показывает, когда я пишу предупреждение (data.book1), помещаю fisrtbook. Для проверки, работает ли (data.book1).

0 голосов
/ 06 сентября 2010

Если вы используете jQuery 1.4+, возвращаемый вами JSON недействителен, ему нужен набор кавычек вокруг первой записи books, например:

{
  "books": {
    "book1": "firstbook",
    "book2": "secondbook"
  }
}

Более ранние версии более снисходительны, но как только вы исправите это, alert(data.books) должно привести к предупреждению объекта. Для вашего if() вы должны использовать data.books.book1, чтобы получить запись в JSON, как она есть сейчас.

...