各位IT前輩們好,最近自己做了一個簡易的公車時刻查詢,搜尋頁面有三個下拉選單,分別為: 車次、起點站、終點站,利用jquery實現下拉聯動選單,例:選擇某車次, 關於某車次的所有站名就會顯示出來,讓使用者去選擇"起點站"和"終點站",最後送出查詢。結果會顯示關於某車次,所有經過從起點站的開車時間,和終點站的抵達時間。
自己測試按下送出查詢後沒有任何值,也試著把起點站和終點站輸出,分別輸出echo $_POST['bus_stop'];和 echo $_POST['bus_stop1']; 結果沒有值。但是,在操作畫面下拉選單"選擇車次"後,公車站名起點站和終點站的下拉選單都有值顯示出站名(從HTML原始碼,當然是看不到的...)。
另外,為了確認sql查詢是否寫錯,自己在phpmyadmin去寫sql查詢,結果是正常的。
請教這部分可以用什麼方式去解決,或者PHP和jquery如何修改,才能解決目前的問題。麻煩IT前輩們解惑,感謝!
jquery內容:
$(function() {
$('#bus_class').change(function(){
var Bus= $('#bus_class').val();
$.ajax({
type: "POST",
url: 'bus.php',
cache: false,
data:'Bus='+Bus,
error: function(){
alert('Ajax request 發生錯誤');
},
success: function(data){
$('#bus_stop').html(data);
$('#bus_stop1').html(data);
}
});
});
});
PHP內容:
<form method="post" action="{$_SERVER['PHP_SELF']}" >
<legend>免費公車查詢</legend>
<ul>
<li>
<label for="bus_class">公車車次</label>
<select name="bus_class" id="bus_class">
<option value="">車次</option>
//公車車次從mysql取出所有車次,用while迴圈取值印出
</select>
</li>
<li>
<label>公車站名</label>
起點站
<select name="bus_stop" id="bus_stop">
<option value="">站名</option>
//透過jquery連結bus.php, 從bus.php查詢sql再將公車站名顯示出來
</select>
終點站
<select name="bus_stop1" id="bus_stop1">
<option value="">站名</option>
//透過jquery連結bus.php, 從bus.php查詢sql再將公車站名顯示出來
</select>
</li>
<input type="hidden" name="op" value="search">
<input type="submit" value="送出查詢">
</ul>
</form>
我拿你貼的這些去執行是正常的喔
所以假如你真的沒有拿到值, 檢查看看你的 bus.php 輸出的 html
看看 option 裡面有沒有給 value
目前只能猜測是這個問題了
你的DATA應該是寫成
<pre class="c" name="code">
data: { Bus : Bus },
你的輸出型態也沒寫上
dataType: "html"
不過你的輸出是兩個下拉式選單的話
其實寫法有誤
剩下交給高手處理吧