2012-03-28 2 views
3

У меня есть этот код, который хорошо работает:Доступ к Ajax Data Response

{"livre":"empty_name"} 

    $.ajax({ 
     url: "sent.php", 
     type: "post", 
     dataType: "json", 
     data: formdata, 
     success: function (data) { 
      switch (data.livre) { 
        case 'empty_name': 

        break; 
     } 
    }); 

, но когда я пытаюсь этот код (я нужен идентификатор), в случае «пустое поле» не работает. Выбранная опция будет использоваться по умолчанию:

{"id":"","livre":"empty_name"} 

    $.ajax({ 
     url: "sent.php", 
     type: "post", 
     dataType: "json", 
     data: formdata, 
     success: function (id, data) { 
      switch (data.livre) { 
       case 'empty_name': 

       break; 
     } 
    }); 

Почему? и как можно решить? благодаря

+2

У вас нет ошибки JavaScript. Синтаксис вашего переключателя выглядит неправильно - errand '});' –

+0

Установите Fiddler, это поможет вам в массовом порядке отладить вашу проблему. Он показывает список запросов, включая ваши ajax, и ваши ответы. – NibblyPig

+2

Я думаю, что он дает нам минимальный код, а не неправильный код. Попробуйте использовать данные ['livre'] вместо ...? Я действительно не вижу проблемы, я просто надеюсь ... – Stefan

ответ

3

Если я правильно понимаю, с объектом Наверху является ответом JSON, я думаю, что вы хотите, это ...

{"id":"","livre":"empty_name"} 

$.ajax({ 
    url: "sent.php", 
    type: "post", 
    dataType: "json", 
    data: formdata, 
    success: function (data) { 
     var jsonId = data.id; 
    } 
}); 

Параметр success обратного вызова data содержит ваш ответ (в данном случае, JSON данные). Вы получаете доступ к своему содержимому JSON.

1

Вам просто нужно понять, как данные возвращаются. В этом случае data - это объект, содержащий все поля. Ваш обратный вызов успеха будет по-прежнему выглядеть как success: function(data) код, который необходимо изменить, в самом блоке метода.

$.ajax({ 
    url: "sent.php", 
    type: "post", 
    dataType: "json", 
    data: formdata, 
    success: function (data) { 
     var id = data.id; //ID lives in data. 
     switch (data.livre) { 
    } 
}); 

Поскольку вы переопределены функции, коммутатор не потому, что в примере, публикуемую livre будет находиться в id объекте и не в data объекта.