2011-10-31 29 views
1

我正在研究一個javascript函數,它在被調用時會向單獨的頁面發出ajax請求。單獨的頁面處理和顯示數組。

要顯示我使用的功能列表:

$('#pub-mod [name="userid"]').change(function() { 
    var usr = $('#pub-mod [name="userid"]').val(); 
    if (usr != '') { 
     $.ajax({ 
     url : 'ajax_admin_load_pubs.php', 
     data: {'action' : 'load_'+usr}, 
     dataType : "text", 
     success : function(response) { 
      $('#pub-mod-list').html(response); 
     } 
     }); 
    } 
}); 

此功能是否按預期運行,如果我把print_r($_GET);在AJAX文件我有Array ([action] => load_userid)顯示出來。

功能編輯列表如下:

function modify_pubs(action) { 
    $.ajax({ 
     url : 'ajax_admin_load_pubs.php' 
     data: {'action' : action}, 
     dataType : "text", 
     success : function(response) { 
      $('#pub-mod-list').html(response); 
     } 
    }); 
} 

此功能無法正常運轉的預期,如果我把print_r($_GET);在AJAX文件我有Array ([action] => load_load)顯示出來。

我已經驗證在第二個函數中的操作正在返回正確的值,在這一點上我對丟失什麼可能是錯誤的。

任何想法?

答案迄今評論:

我打電話從用於顯示它的代碼生成的文本鏈接modify_pubs。 (即<button onclick="modify_pubs(userid_c_up);">up</button>

爲「modify_pubs(userid_c_up)」的部分是由只具有它提醒值被傳遞檢查

此外,我希望看到陣列([動作] => text_string_from_action) - 查爾斯史密斯3分鐘前編輯

行動是下劃線分隔運行AJAX代碼的單獨部分的文本字符串。

+0

* *如何你調用'modify_pubs'功能? –

+0

你期望看到什麼?從顯示的代碼中,你可以得到你應該做的。 –

+0

什麼是行動?它在哪裏定義? – mddw

回答

1

首先,爲什麼不使用POST而不是GET?

第二,ID o不知道這是否會有所幫助,但你做錯了。

根據jQuery文檔,您將您希望將請求發送到「url」的位置,以及要在「data」中發送的數據,但不要將url結合到url中,所以也許這會起作用。 (使用獲得()而不是阿賈克斯())

$.post("ajax_admin_load_pubs.php", { "action": action}, 
    function(response){ 
     $('#pub-mod-list').html(response); 
    }, "text"); 

而且隨着你的例子只是一個小編輯:

function modify_pubs(action) { 
    $.ajax({ 
     url : 'ajax_admin_load_pubs.php', 
     data : {"action" : action}, 
     dataType : "text", 
     type : 'post', 
     success : function(response) { 
      $('#pub-mod-list').html(response); 
     } 
    }); 
} 
+0

提前試了一下,並沒有解決這個問題,但你是正確的,所以我會更新原來的帖子來反映這一點。 –

+0

另外,爲什麼不使用POST?我會使用帖子,因爲那樣我的數據會以一種奇怪的方式重新格式化的風險較小。 – Webbies

+0

將ajax調用更改爲'type:'post','修復了它。如果你可以編輯你的答案,我會接受它。此外,在數據上,您應該將數組鍵用引號引起來。 謝謝 –