為什麼這篇php下拉式選單取值鄉民發文收入到精華區:因為在php下拉式選單取值這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者b8211290 (R.V. 紅青菜)看板Ajax標題[問題] AJAX 菜鳥新手發問,關於二層...
各位大大你們好
想請教一下,關於二層式下拉式選單,第一層選定後
要如何 利用 AJAX 把值導出,存進本頁的 PHP 變數裡?
網路上相關的選單範例爬文好久,還是試不太出來
例如:
第一層選單 內容為 批號 A1、A2、A3、A4
我想要將 使用者所選的選項 儲存至 本頁 的 PHP 變數 $select1
然後透過 $select1 的值,要去 MySQL 裡面撈資料,做為 第二層的選項
資料表如下:
id | T_id
A1 | T1
A1 | T2
A1 | T3
A2 | T1
A2 | T2
A3 | T1
A3 | T2
A3 | T3
A3 | T4
小弟在此先感謝各位大大的解答 麻煩各位了 !!!!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.173.77.138
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1433193715.A.DF1.html
目前我寫這樣:
--------------------
test.php
--------------------
<form method="POST" action="factor_design_save.php"
enctype="application/x-www-form-urlencoded">
實驗批號:<br>
<select name="eid" id="eid">
<option value="0">請選擇</option>
<?php
// 取得第一層option資料
$link = mysql_connect("127.0.0.1", "root", "")or die("unable to connect
mysql". mysql_error());
mysql_select_db("experiment");
mysql_query("SET NAMES uft8");
$query = "SELECT DISTINCT Exp_id FROM team";
$result = mysql_query($query, $link);
while ( $row = mysql_fetch_assoc($result) ) {
echo '<option value="'.$row["Exp_id"].'">'.$row["Exp_id"].'</option>'."\n";
}
?>
</select><br>
組號:<br>
<select name="tid" id="tid">
<option value="0">請選擇批號</option>
<script>
$(document).ready(function(){
$('#eid').change(function(){
//更動第一層時第二層清空
$('#tid').empty().append("<option value='0'>請選擇批號</option>");
$.ajax({
type: "GET",
url: "action.php",
data: {data:$('#eid option:selected').val()},
datatype: "json",
success: function(result){
//當第一層回到預設值時,第二層回到預設位置
if(result == "0"){
$('#tid').val($('option:first').val());//pseudo selector
}
//依據第一層回傳的值去改變第二層的內容
var i=0;
while ( i < result.length ) {
$("#tid").append("<option
value='"+result[i]+"'>"+result[i]['T_id']+"</option>");
i++;
}
},
error: function(error){
alert( "error" );
}
});
});
});
</script>
</select><br>
<input type="submit">
</form>
--------------------
action.php
--------------------
<?php
//return json format
header('Content-Type: application/json;charset=utf-8');
$link = mysql_connect("127.0.0.1", "root", "")or die("unable to connect
mysql".mysql_error());
mysql_select_db("experiment");
mysql_query("SET NAMES uft8");
$Exp_id = $_GET['data'];//get ajax data 'Exp_id'
$jarray = array();//使用array儲存結果,再以json_encode一次回傳
if ( $Exp_id != 0 ) {
$query = "SELECT t_id FROM team Where exp_id=".$Exp_id;
$result = mysql_query($query, $link);
//fetch_assoc return [{},{}]
//fetch_row return[[],[]]
//fetch_object return[{},{}]
//fetch_array return [{},{}]
while ($row = mysql_fetch_assoc($result)) {
$jarray{} = $row; //這邊如果我用 [ ] 選單出不來,用 { } 內容不是我要的 (暈..
}
} else {
echo 0;
return;
}
echo json_encode($jarray);
return;
?>
※ 編輯: b8211290 (1.173.77.138), 06/03/2015 03:11:25
※ 編輯: b8211290 (1.173.77.138), 06/03/2015 03:14:02