我做了一個新增資料的表單,然後其中有一個部分是用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>";    
    }
  }
                    有點出路了,感謝海綿寶寶大神的指導。