2011-03-03 74 views
0

我使用Wordpress,PHP,jQuery和AJAX。jQuery AJAX - 接收多個數據

我可以通過一個AJAX調用得到PHP的數據,就像這樣:

$.ajax({ 
    type: "POST", 
    url: "<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1", 
    data: "action=load&type=part", 
    success: function(data){ 
     alert(data); 
    } 
}); 

當我接收到的數據我也想知道它是怎麼去了。 「數據」包含HTML,我也想要「成功」或「未找到」等錯誤代碼。

我該如何解決這個問題?

WordPress的

因爲我使用WordPress我需要調用一個AJAX觸發(在URL)。如果我能保持完好無損,那會很好。

回答

1
$.ajax({ 
    type: "POST", 
    url: "<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1", 
    data: "action=load&type=part", 
    success: function(data){ 
     alert(data); 
    }, 
    failure: function(){ 
     alert('failed'); 
    } 
}); 

你可以添加一個故障處理程序,看看Ajax請求失敗,但除此之外,如果想有一個不同的返回值,你將不得不改變你正在呼籲與後端的函數的結果,或者創建一個新的類似函數,而不是僅返回html,返回一個json編碼的數組,其中第一個元素被找到或找不到,第二個元素是html。

編輯:添加註釋以完成答案和格式代碼。

在您迴應「你的結果」的地方,你可以重複,而不是

json_encode(array('success'=>true,'html'=>$yourData)); 

,並在你的Ajax調用,加

dataType:'json' 

那麼您可以在訪問成功和HTML值你的成功經理。

+0

是否有可能使用jSON,並仍然保持我的「url」像現在這樣?如果你知道它是如何完成的,請隨時更新你的文章。 非常感謝! – 2011-03-03 15:27:47

+0

@Jens - 是的,你知道你在調用PHP函數的地方嗎? – Orbit 2011-03-03 15:30:24

+0

哪裏?如果你的意思是一個URL,它在這裏http:// localhost/concepts/addmod /?ajax_trigger = 1。如果你的意思是一個函數,它可以調用... function load_part(){echo'My result'; } – 2011-03-03 15:37:48

0

我通常只是返回一個數組或字典,其中一個值被指定爲狀態。

$.get(url,data,function(data) { 
    if (data[0]=='parseError') { //could also be data.state 
     $("#formError").html("You have entered an invalid value.").show(); 
    } 
    else if (data[0]=='permissionDenied') { 
     $("#formError").html("You do not have permission to edit this.").show(); 
    } 
    else { 
     $("#formSuccess").html("Your changes have been saved"); 
    } 
}); 

這些示例可能不是最好的(權限被拒絕,可以在前端處理解析錯誤)。這個概念仍然是堅實的。