2014-05-17 92 views
0

我看過很多帖子,但仍然無法弄清楚爲什麼這段代碼不工作。我有一個user_dashboard.html其中包含的代碼: -JQuery Ajax調用PHP頁面不工作

<script> 
$(document).ready(function (e) { 
    //e.preventDefault(); 

    $('#search_button').click(function() { 
     $.get("db_test2.php", function(data, status) { 
      console.log("Test Log"); 
      alert("Data:"+data+"\nStatus:"+status); 
     }); 
    }); 
}); 
</script> 

的db_test2.php存在於同一個文件夾中的文件,包含的代碼: -

<?php 
    echo "This is a db test"; 
?> 

的問題是,我沒有收到任何警報,也沒有生成控制檯日誌。

+0

你看到在調試器的任何錯誤? –

+1

觀察瀏覽器開發人員工具(F12)中的網絡/網絡選項卡,查看響應代碼和響應內容。成功功能只會觸發「成功」的響應,即在2xx範圍內。 – MrCode

+0

你的代碼對我來說工作正常 –

回答

0

你有一個提交按鈕,所以默認情況下,運行你的點擊處理程序後,它會立即提交表單。爲了防止這種情況,你可以return falsee.preventDefault()

$('#search_button').click(function() { 
    $.get("db_test2.php", function(data, status) { 
     console.log("Test Log"); 
     alert("Data:"+data+"\nStatus:"+status); 
    }); 
    return false; // stop the form being submitted 
}); 
+0

非常感謝這爲我工作 – tumulr

0

只是爲了確保,把console.log("clicked");,以確保該方法被稱爲

$('#search_button').click(function() { 
    console.log("clicked"); // here 
    $.get("db_test2.php", function(data, status) { 
     console.log("Test Log"); 
     alert("Data:"+data+"\nStatus:"+status); 
    }); 
}); 

編輯

JSFiddle

如果db_test2.php是相同的目錄內

工作正常您所在的文件,請嘗試整個網址

例如www.domain.co.uk/directory/db_test2.php

如果它工作,那麼你知道它沒有找到db_test2.php,這就是你的問題所在。

另外,控制檯中是否有錯誤?

+0

我按照你的建議添加了console.log。我可以在控制檯日誌中看到該消息,但在消息消失後​​僅一秒鐘。是否可以? – tumulr

0

我前面插入以下警報代碼,試圖追蹤問題:

<script> 
    $(document).ready(function (e) { 

     alert('#search_button').length);//to confirm the presence of the button 

     $('#search_button').click(function() { 

     alert('Button clicked!'); 

     $.get("db_test2.php", function(data, status) { 
     console.log("Test Log"); 
     alert("Data:"+data+"\nStatus:"+status); 
}); 
}); 
}); 
</script> 

所以,除了你的「測試日誌」,我認爲沒有其他JavaScript錯誤控制檯上? 最後,再次確認你的'db_test2.php'確實是你認爲它的地方,'因爲404錯誤通常會導致這種沉默,令人沮喪的錯誤!