我意識到這是一個熱門話題,我已經閱讀了幾個例子,但由於某種原因,我不能讓我的AJAX代碼加載第二個PHP頁面,將觸發創建第二個下拉菜單。我正在使用名爲(page2.php)的測試頁來嘗試和調試,而不會讓我的網站的其他部分阻礙。有一個下拉選擇框從Mysql數據庫填充另一個
頁面代碼如下所示。
<?php include("db_connect.php");
$query = 'SELECT * FROM db_class_catagories';
$result = mysqli_query($dbconnection,$query);
?>
<select id="primary_catagory" name="primary_catagory" onchange = "getData(this)"style="position:absolute;left:10px;top:10px;width:315px;height:20px;z-index:11;text-align:left;">
<option value=''>Select</option>
<?php while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)){
echo "<option value='" . $row['primary_catagory'] . "'>" . $row['primary_catagory'] . "
</option>";}
?>
</select>
<div id="get_catagory"></div>
<script>
function getData(dropdown) {
var catagory = dropdown.options[dropdown.selectedIndex].value;
var dataString = "primary_catagory="+catagory;
$.ajax({
type: "POST",
url: "get_sub_catagory.php", // Name of the php files
data: dataString,
success: function(html)
{
$("#get_catagory").html(html);
}
});
}
</script>
使用警報的我已經確定,下拉選擇至少達到的功能,但我的AJAX代碼不會正確地將其轉發到PHP頁面。
生成第二個下拉列表的php頁面被稱爲get_sub_catagories.php幷包含以下內容。
<?php
include("db_connect.php");
if ($_POST) {
$primary_catagory = $_POST['primary_catagory'];
if ($primary_catagory != '') {
$query = "SELECT * FROM db_class_catagories WHERE primary_catagory=" . $primary_catagory;
$result1 = mysqli_query($dbconnection,$query);
echo "<select name='state'>";
echo "<option value=''>Select</option>";
while ($row = mysql_fetch_array($result1)) {
echo "<option value='" . $row['sub_catagory'] . "'>" . $row['sub_catagory'] . "
</option>";}
echo "</select>";
}
else
{
echo '';
}
}
?>
函數被調用,但沒有數據被傳遞到get_sub_catagories.php頁面。我確定我的位置已經搞亂了,但我在AJAX上並不堅實,並將其用作我的教程。
我認爲它這部分
success: function(html)
{
$("#get_catagory").html(html);
但是我不知道什麼是錯的。
感謝您的指點!
UPDATE:
香港專業教育學院解決了這個問題的第一部分,在這裏,它從來沒有發生到我的加載jQuery庫,我現在已經有
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
這現在返回下拉列表完成對象,但它沒有填充,但查詢顯示在調試(SELECT * FROM db_class_catagories WHERE primary_catagory =電子)
一個快的想法:你可以使用網絡(過濾器僅XHR)選項卡在Chrome開發者工具來調試AJAX調用。標題選項卡顯示通過GET和POST傳遞的變量,預覽和響應選項卡以各種格式顯示響應。這會告訴你,如果ajax調用得到正確的參數並返回任何東西。 – xeo 2014-11-01 19:28:14
當我按照你的建議做了這個錯誤,我重新訪問了代碼,但不能看到我自己的錯誤。未捕獲的ReferenceError:$未定義 – OJ102 2014-11-02 06:24:42
是否可以在服務器上加載jquery,從而無法找到自己? – OJ102 2014-11-02 06:34:24