2011-07-01 40 views
0

使用ajax,json和PHP處理提交表單。數據可以用DB正確處理,但是這個帶有alert(data.success)的腳本說data.success是未定義的。如果我提醒(數據),它表明我需要的是有{"success":"http:\/\/myaddress.com"}data.success undefined

function confirmSubmit() { 
$.ajax({ 
    type: 'POST', 
    url: 'index.php?route=payment/authorize/send', 
    data: $('#authorize :input'), 
    beforeSend: function() { 
     var img = '<?php echo $text_wait; ?>'; 
     $('#authorize_button').attr('disabled', 'disabled'); 

     $('#authorize').before('<div class="wait"><img src="catalog/view/theme/default/image/loading_1.gif" alt="" /> ' + img + '</div>'); 
     alert('Start'); 
    }, 
    success: function(data) { 
     if (data.error) { 
      alert('errors...'); 
      alert(data.error); 

      $('#authorize_button').attr('disabled', ''); 
     } 

     $('.wait').remove(); 

     if (data.success) { 
      alert('success! It should redirect.'); 
      location = data.success; 
     } 
     else { 
      alert('it worked... but won\'t redirect...'); 
      alert(data.success); 
     } 

    } 
}); 
alert('End'); 

}

回答

4

你不解析響應。 data仍然是一個字符串。

$.ajax選項中設置dataType: 'json'

更妙的是,如果你設置正確的內容類型,在PHP中迴應:

header('Content-type: application/json.'); 
+0

哦奶酪ñ餅乾.....非常感謝,我怎麼忽略了... – Robbie

+0

@Robbie:順便說一句。我已經看到你已經問了幾個問題(實際上不久前);但是你沒有接受任何答案。他們沒有人幫助你?您應該點擊旁邊的勾號大綱以接受最有用的答案。 –

+0

噢......謝謝,我經常不會意識到這一點。 – Robbie

0

嘗試增加數據類型:「JSON」要不解析與jQuery.parseJson(數據)的JSON數據響應