2012-07-02 3 views
0

Я пытаюсь проверить свой ответ на запрос ajax, но я не могу понять, как анализировать результаты.

Может кто-то помочь, пожалуйста

$('input[name=sendpassword]').click(function(){ 
       var password = $("input[name=password]").val(); 
       var dataString = "uid=" + uid + "&password=" + password; 
       console.log(dataString); 
       $.ajax({ 
        type:"POST", 
        url:"/assets/inc/check-password.php", 
        data:dataString, 
        dataType:'html', 
        context:document.body, 
        global:false, 
        async:false, 
        success:function(data){ 
         console.log(data); 
         if (data[0].id==true){ 
          console.log("success"); 
         } else { 
          console.log("failed"); 
         } 
         //window.location.replace(reffer); 
         //document.location ="/"; 
        } 
       }); 
      }); 

console.log показывает { "ID": ложь} или { "ID": правда}, но я хотел бы сделать, если заявление с результат

+2

'DATATYPE: 'html'' должна быть' DATATYPE: «json'', если вы вернете JSON. –

+1

потерять '[0]' in 'data [0] .id', data - это объект, а не массив –

+0

@ red-X поле ответа ниже –

ответ

2

попробовать это, если (data.d == верно)

$('input[name=sendpassword]').click(function(){ 
       var password = $("input[name=password]").val(); 
       var dataString = "uid=" + uid + "&password=" + password; 
       console.log(dataString); 
       $.ajax({ 
        type:"POST", 
        url:"/assets/inc/check-password.php", 
        data:dataString, 
        dataType:'json', 
        context:document.body, 
        global:false, 
        async:false, 
        success:function(data){ 
        console.log(data.d); 
         if (data.d==true){ 
          console.log("success"); 
         } else { 
          console.log("failed"); 
         } 
         //window.location.replace(reffer); 
         //document.location ="/"; 
        } 
       }); 
      }); 
0

Если консоль просто показывает {"id":false} (т.е. не показывает массив), то вы можете использовать его с помощью: data.id==true

+1

Цитаты вокруг' id' заставляют меня думать, что это еще не был проанализирован. –

0

Разобрать результат первого, так что вы можете получить доступ к IND отдельные компоненты в результате.

var parsedResponse = JSON.parse(data) 

Тогда доступ как parsedResponse.id, который вы можете использовать в вашем if состоянии.

+0

@ Джаред Фарриш, :) исправил это. – Sparky

1

попробовать это jQuery.parseJSON(data) и вместо if (data[0].id==true){ использования if (data.id=="true"){

$('input[name=sendpassword]').click(function(){ 
       var password = $("input[name=password]").val(); 
       var dataString = "uid=" + uid + "&password=" + password; 
       console.log(dataString); 
       $.ajax({ 
        type:"POST", 
        url:"/assets/inc/check-password.php", 
        data:dataString, 
        dataType:'html', 
        context:document.body, 
        global:false, 
        async:false, 
        success:function(data){ 
        data = jQuery.parseJSON(data) 
         console.log(data); 
         if (data.id==true){ 
          console.log("success"); 
         } else { 
          console.log("failed"); 
         } 
         //window.location.replace(reffer); 
         //document.location ="/"; 
        } 
       }); 
      }); 

ИЛИ как это было предложено Jared

DATATYPE: 'HTML' должен быть DATATYPE: 'JSON'.

, то вам не нужно будет разобрать в JSON

+0

Не изменил бы 'dataType' на' json' более прямолинейный? –

+0

да это также хорошо. – Rab

Смежные вопросы