2013-08-07 82 views
0

我有一些代碼從下拉菜單中提取值,並將該值用作AJAX調用中的參數。jQuery AJAX調用忽略下劃線而不是空格

的代碼看起來是這樣的:

HTML

<select class='FormDropDown ' id='ass-assessmentReason' name='ass-assessmentReason'> 
    <option value='Emergency'>Emergency</option> 
    <option value='Follow-up'>Follow-up</option> 
    <option value='Nurse Call'>Nurse Call</option> 
</select> 

JS

$('#ass-assessmentReason').change(function() { 
    var selectedOption = $(this).find(":selected").text().replace(/ /g,"_"); // Replace whitespace with _ for URL transportation 
    console.debug(selectedOption); 
    $.ajax({ 
     type: "POST", 
     url: "otrFollowUp.php", 
     data: "followup=" + selectedOption, 

我已經切斷了代碼的其餘部分,但這個工作絕對沒問題當選定的下拉選項沒有空格時,但會截斷任何具有空格的值。

正如你所看到的,我試圖通過用下劃線臨時替換空格,然後在otrFollowUp.php中反轉這個來解決這個問題。我不明白的是當我看到控制檯調試器時,我看到'Nurse_Call',但是當我看着它嘗試呼叫的URL時,我看到'otrFollowUp.php?followup =護士

由於某些原因,它忽略了下劃線,發送下拉值與空格不變,截斷正確的選項值並打破腳本的其餘部分。由於在AJAX調用之前的console.debug()顯示它成功地用下劃線替換空格,所以我很難理解爲什麼它會這樣做。

回答

2

從技術上講,您應該甚至不會在您的URL中看到參數,因爲您使用的是POST方法(GET會通過它們傳遞URL)。因此,如果你想在你的網址中使用GET,請嘗試切換。另外,嘗試將數據作爲對象而不是字符串,例如

data: { "followup": selectedOption }, 

讓,我知道如果有什麼打,如果您有任何疑問:)

+0

非常感謝,這沒有訣竅:) – Roy

0

無需jQuery的這裏,剛剛得到的選擇元素的值,並調用替換()上:

var selectedOption = this.value.replace(/ /g, "_"); 

Working Demo