iT邦幫忙

0

預設3階下拉式選單

php
  • 分享至 

  • xImage

我做了一個新增資料的表單,然後其中有一個部分是用3階層的下拉式選單去填寫,如果我要做一個編輯表單,要如何讓表單可以預設的值是資料庫裡面的所儲存的內容,又保有下拉式選單的功能。我的下拉式選單是用ajax的方式去寫的。

看更多先前的討論...收起先前的討論...
然後咧?
你想幹什麼?

要程式碼?還是要範例?還是要伸手?
html??php??css??用啥??做啥??

也不一次說清楚。就算要伸手,想給你也不知道怎麼給。
孩子!你需要先把html學好。
wer5546 iT邦新手 5 級 ‧ 2020-11-06 03:33:29 檢舉
我是想問要如何讓表單可以預設值是資料庫裡面的所儲存的內容,php的程式碼怎麼寫。

我html沒有到精熟是我不好
我的認知是可以用selscted 做為下拉式選單一預設的值。

不好意思,沒什麼在大平台上面問大家問題的經驗。
重點,你的程式碼咧?熟不熟不是重點。
archer9080 iT邦研究生 3 級 ‧ 2020-11-06 08:54:21 檢舉
參考
https://ithelp.ithome.com.tw/questions/10200700
裡面有談到select 和 input tag附值的用法

是說都透過ajax取資料了
php不就是給資料而已?
ajax success之後就是js的事情了吧?
>表單可以預設值是資料庫裡面的所儲存的內容,php的程式碼怎麼寫。
不懂

還是你只有下拉式選單是透過ajax取資料?
孩子!那你就需要把javascript學好了。
需求也不說清楚。讓人家再那邊猜半天。很累耶!!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2020-11-06 07:07:01

我的下拉式選單是用ajax的方式去寫的

一般用 ajax 就是為了用資料庫的內容
建議把這部份的程式碼貼出來
比較好知道如何修改

wer5546 iT邦新手 5 級 ‧ 2020-11-07 11:19:56 檢舉

下拉式選單的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>";    
    }
  }
wer5546 iT邦新手 5 級 ‧ 2020-11-08 13:12:50 檢舉

有點出路了,感謝海綿寶寶大神的指導。

我要發表回答

立即登入回答