iT邦幫忙

0

(請益)AJAX搭配PHP&mysql動態下拉式選單

小弟目前在寫php連接mysql的動態下拉式選單,之前是採用onchange的方式,但是會發生跳頁後選擇過的選單選項跳回第一項的問題.

因此試試看使用AJAX的方式,也爬文做了一點功課,但是目前成功選擇到第一層選項後,第二層的項目無法正常顯示出來.

因此想請問大家是哪個部分出了問題,以下是我的程式碼

這是顯示畫面:

https://pastebin.com/raw/MMmz2Kz

這是負責撈第二層資料的php檔:

https://pastebin.com/raw/tGKXEF1

先謝謝各位的回覆,感激不盡

ccutmis iT邦高手 9 級 ‧ 2019-09-30 02:58:37 檢舉
你把
success:function(res){
$('#HOS_NAME').html(res);
}
改成
success:function(res){
$('#HOS_NAME').html(res);
console.log(res);
}
學程式先要學除錯( google 搜 Chrome F12大法 ),這個問題不在AJAX上面,
應該是AJAX_2.php在SQL撈資料那部份出問題,
把res(AJAX_2.php的回傳結果)印在console看是什麼問題再說,
搞不好問題出在SQL語法也說不定,
例如:
$sql = "SELECT HOS_NAME FROM hos_detail WHERE HOS_CITY = $HOS_CITY";
改成
$sql = "SELECT HOS_NAME FROM hos_detail WHERE HOS_CITY = '$HOS_CITY'";

SQL查詢條件如果是字串 好像要用單引號包起來,比如說
WHERE area = Taipei (X)這會出錯
WHERE area = 'Taipei' (O)這會出什麼我不知道...至少不會出錯
感謝你的回覆!
除了引號的問題之外 我發現在AJAX_2.php include_once的地方也出錯
現在可以成功顯示選項了~~謝謝你~

1 個回答

3
小魚
iT邦大師 1 級 ‧ 2019-09-30 08:26:26
最佳解答

都已經2019了,
就不要再用mysqli了...

然後你在PHP用echo或記錄Log,
前端用console.log印出來,
看看錯誤在哪裡.
順便把PHP的錯誤訊息打開.
在PHP檔案最前面加入下面兩行就可以
(當然要放在<?PHP後面)

ini_set('display_errors','1');
error_reporting(E_ALL);

測試完再拿掉.

ccutmis iT邦高手 9 級 ‧ 2019-09-30 09:18:00 檢舉

都已經2019了,

都已經9102年了,

阿展展展 iT邦研究生 3 級 ‧ 2019-09-30 09:39:09 檢舉

什麼9102 我只知道9453辣

我要發表回答

立即登入回答