2011-05-18 61 views
0

在jQuery ajax語句中,我想從服務器接收有效內容並在另一個函數中處理它。我只是遇到了函數的語法問題。jquery ajax調用問題

 
    $.ajax({ 
    url: 'mypgm.pgm', 
    type:'POST', 
    dataType: 'json', 
    data: 'action=add' + 
      '&techno=' + techno + 
      '&activity=' + activity, 
    success: ajax_callback(msg), 
    error:function (xhr, ajaxOptions, thrownError){ 
        alert(xhr.status); 
        alert(thrownError); 
     }  
    }); 
} 

    function ajax_callback(msg) { 

     alert(msg); 
    } 

響應

 
{"response": { 
    "success": "0", 
    "message": "The Activity has been added." 
    } 
} 
+0

它看起來像'mypgm.php'爲r根據你在這裏的反應,問題究竟是什麼? – 2011-05-18 23:36:10

回答

3

$.ajax()一個成功的回調處理程序可以採取以下值:

success(data, textStatus, jqXHR) 

來源:http://api.jquery.com/jQuery.ajax/

所以你的回調函數將類似於這個:

function ajax_callback(data, textStatus, jqXHR)  
{ 
    alert(data.response) 
} 

請注意我是如何以這種方式創建了一個命名函數,而不是將它分配給一個var。如果你只關心數據,你可以離開了最後2個參數關閉:

function ajax_callback(data)  
{ 
    alert(data.response) 
} 
+0

這是這樣的嗎?成功:成功(data,textStatus,jqXHR), – bob 2011-05-18 23:46:28

+0

是數據a * magic *變量?它必須被定義嗎? – bob 2011-05-18 23:48:08

+0

我不確定你在問什麼。成功的回調處理程序的格式就像你粘貼的一樣,就像我在代碼中所做的一樣。請試試看,如果您有問題,請告訴我。 – 2011-05-18 23:49:04

0

試試這個:

$.ajax({ 
    url: 'mypgm.php', 
    type: 'POST', 
    dataType: 'json', 
    data: 'action=add' + '&techno=' + techno + '&activity=' + activity, 
    success: function(data) { 
     alert(data) 
    } 
}); 
+0

謝謝。我想打破成功功能。 – bob 2011-05-18 23:41:33

0

您的回調應該在Ajax調用之前被定義和改變的簽名功能:

var ajax_callback = function(data, textStatus, xhr) { 
    // parse the data.responseText to json 
} 

你可以或者只使用$.getJSON()

+0

不確定我們是否堅持使用json。 .ajax似乎更加靈活。 – bob 2011-05-18 23:47:19