2011-04-09 75 views
0

我通過我的網頁上的按鈕獲得了下面的函數觸發器。Ajax調用傳遞一些參數

我需要將文本字段的值傳遞給ajax調用。我有下面的腳本,但沒有發生。

function sentDateToServer(){ 
     var runDate = $('#rundate').html(); 
     $.ajax({ 
      type: 'GET', 
      url: '/clientsurvey/planner.html?runDate=' + runDate, 
      success: function(response) { 

      } 
      error: function(xhr, asdf,) { 

      } 
     }); 
+0

你期望發生的?爲什麼你將查詢字符串傳遞給html?你的意思是.php? – Trevor 2011-04-09 03:46:51

回答

2

假設你真正的意思是「輸入元素」當你說「文場」,那麼你應該使用val()函數來獲得它的價值,而不是html()這將返回嵌套的HTML內容(確實是有通常情況下沒有輸入元素)。

var runDate = $('#rundate').val(); 

不要忘記encodeURIComponent()它,或者更好,使用data選項$.ajax()設置。

+0

你可以給我一個例子,我不知道在成功範圍內輸入什麼 – glenn 2011-04-09 02:54:36

+0

當服務器端成功完成處理ajax請求並返回響應時,您需要在客戶端執行什麼操作?只需將代碼放在那裏即可實現。或者如果你實際上不需要/想要處理任何成功/錯誤的情況下,那麼只需刪除這些處理程序。除此之外,你最初的問題是否解決?你的服務器端現在是否檢索預期的參數? – BalusC 2011-04-09 02:56:28

+0

我們可以進入javascript聊天嗎? – glenn 2011-04-09 02:58:13

0

首先,可能是因爲成功回調關閉括號後需要逗號。也許因爲這個逗號不存在,那麼ajax函數不知道如何關閉自己,因此jquery完全忽略了這個函數。

其次,我同意@ Trevor的關於使用/clientsurvey/planner.html?作爲您的url請求的混淆,這應該是php或foxpro什麼的。如果它是這些語言之一,那麼你甚至不需要擴展名,你可以做'/clientsurvey/planner?runDate='+runDate,這應該工作。

第三,在成功之前將error回調放在句法上更聰明,因爲如果ajax函數拋出一個錯誤,那麼在讀取不會執行的函數時,jQuery會浪費內存和處理能力。

所以,你的聲明更改爲以下:

function sentDateToServer(){ 
    var runDate = $('#rundate').html(); 
    $.ajax({url: '/clientsurvey/planner?runDate=' + runDate, 
     type: 'GET', 
     error: function(xhr, asdf,){ 
      alert(xhr + "\n\n" + asdf); 
     }, 
     success: function(response){ 
      //do something 
     } 
    }); 
});