我做了一個新增資料的表單,然後其中有一個部分是用3階層的下拉式選單去填寫,如果我要做一個編輯表單,要如何讓表單可以預設的值是資料庫裡面的所儲存的內容,又保有下拉式選單的功能。我的下拉式選單是用ajax的方式去寫的。
我的下拉式選單是用ajax的方式去寫的
一般用 ajax 就是為了用資料庫的內容
建議把這部份的程式碼貼出來
比較好知道如何修改
下拉式選單的ajax部分
$("#type_n").change(function () {
var type_n = $('#type_n :selected').val();
$.ajax({
url:"list_function.php",
method:"POST",
data:{
type_n:type_n
},
success:function(res){
$('#item').html(res);
}
});
});
$("#item").change(function () {
var item = $('#item :selected').val();
var type_2 = $('#type_n :selected').val();
$.ajax({
url:"list_function.php",
method:"POST",
data:{
item:item,
type_2:type_2
},
success:function(res3){
$('#class_name').html(res3);
}
});
});
list_function.php
@$type_n = $_POST['type_n'];
$sql = "SELECT DISTINCT `activityname` FROM `activities` WHERE `type`='".base64_decode($type_n)."'";
$result2=mysqli_query($connection, $sql) or die("取出資料失敗!".mysqli_error($connection));
$res="";
while ($data=mysqli_fetch_assoc($result2)) {
$res .="<option value='".base64_encode($data["activityname"])."'>{$data['activityname']}</option>";
}
echo $res;
//
@$item_n = $_POST['item'];
@$type_2 = $_POST['type_2'];
$sql3 = "SELECT DISTINCT `class_name` FROM `activities` WHERE `type`='".base64_decode($type_2)."' && `activityname`='".base64_decode($item_n)."'";
$result3=mysqli_query($connection, $sql3) or die("取出資料失敗!".mysqli_error($connection));
$res3="";
while ($data3=mysqli_fetch_assoc($result3)) {
$res3 .="<option value='".base64_encode($data3["class_name"])."'>{$data3['class_name']}</option>";
}
echo $res3;
我換個意思問,要怎麼讓著些選單都預設在第一個選項。
試試看,把
$res3="";
while ($data3=mysqli_fetch_assoc($result3)) {
$res3 .="<option value='".base64_encode($data3["class_name"])."'>{$data3['class_name']}</option>";
}
改成
試試看,把
$res3="";
while ($data3=mysqli_fetch_assoc($result3)) {
if ($res3=="") { //第一筆, 加個 selected
$res3 .="<option value='".base64_encode($data3["class_name"])."' selected>{$data3['class_name']}</option>";
} else {
$res3 .="<option value='".base64_encode($data3["class_name"])."'>{$data3['class_name']}</option>";
}
}
有點出路了,感謝海綿寶寶大神的指導。