2013-05-31 93 views
0

我知道這個問題已經被問過。但是,我無法找到解決我的問題。我試圖用$ .post來搜索一個MySQL數據庫,只是爲了測試我設置了customer_lookup.php的代碼來回顯'你好'。出於某種原因,此代碼無法正常工作,我在許多教程和文檔中查看過這些內容,但無法找到任何問題,但出於某種原因,我無法獲得任何結果。

$('input#customer_search_submit').on('click', function() { 

    var customer_name = $('input#customer_name').val(); 

    $.post('/ajax/customer_lookup.php', {customer_name: customer_name}, function(data) { 
     alert(data); 
    }) 

}); 

如果我刪除了$ .post並且只是放置alert(customer_name);如預期的那樣,它會以警報的形式輸出表單數據,所以我相信問題出在了任何幫助/指導上。

謝謝

+4

這甚至不是有效的JavaScript,並且會導致語法錯誤。看看錯誤控制檯。 (假設真實的代碼沒有那個錯誤,可能是服務器返回了一個不成功的響應,在這種情況下,「成功」回調將不會被調用。請檢查瀏覽器網絡監視器。) – user2246674

+0

順便說一下,如果您使用的是谷歌瀏覽器,則可以按CTRL + SHIFT + J打開javascript控制檯,它將顯示您的代碼出了什麼問題。 –

回答

0

JavaScript看起來沒問題。您應該檢查您是否指定了正確的網址。嘗試添加error handler到您的代碼如下所示:

$('input#customer_search_submit').on('click', function() { 
    var customer_name = $('input#customer_name').val(); 
    $.post('/ajax/customer_lookup.php', {customer_name: customer_name}, function(data) { 
     alert(data); 
    }).error(function(){alert(arguments[1]+" "+ arguments[2]);}); 
}); 

顯然,你需要學習如何與控制檯的工作。檢查:Chrome的開發者工具(F12或Ctrl + Shift + J),Firefox的Firebug,IE的開發者工具(F12))

1

取消點擊事件!

$('input#customer_search_submit').on('click', function(e) { 
    e.preventDefault(); 
    ... 
+0

謝謝!這終於奏效了,在像我這樣的代碼的很多例子中,其他人似乎沒有使用/需要使用.preventDefault(),你能解釋爲什麼嗎?再次感謝 –

+0

因爲您正在使用提交按鈕來回傳表格。如果您使用常規按鈕,則不會提交表單。 – epascarello