簡體   English   中英

使用AJAX / PHP / SQL更新選擇/選項元素的值

[英]Updating select/option elements value using AJAX/PHP/SQL

小背景

我有兩個動態的select / option下拉列表,它使用sql查詢從PHP中回顯。

如果選擇了第一個保管箱,則第二個保管箱將包含與第一個保管箱相關的信息,例如第一個保管箱(控制台),第二個保管箱(ps4 / xbox一個)等。所有這些信息都存儲到數據庫中。

如果用戶選擇第一個保管箱,則javascript / AJAX將該信息發送到PHP /服務器,然后在PHP中,我創建一個sql查詢並回顯第二個保管箱的所有可用選擇/選項。

但是,我有點困惑,因為我不確定這是否是實現標簽的正確方法。

選項字段上沒有任何顯示。

更新,

第一個Drop框運行良好,問題是第二個Dropbox,其ID為sub_cat。

Javascript AJAX:

 function subCatActivation(i) {
      var selectedBox = document.getElementById("Cat" + i);
      var val = selectedBox.options[selectedBox.selectedIndex].value;
      var hr = new XMLHttpRequest();
      var url = "parse_receive_select.php";
      hr.open("POST", url, true);

      hr.setRequestHeader("Content-type", "application/x-www-form-urlendcoded");

      hr.onreadystatechange = function () {
          if (hr.readyState == 4 && hr.status == 200) {
                var return_data = hr.responseText;
                document.getElementById("opt").innerHTML = return_data;
          }
      }
      hr.send(val);
 }

的HTML

<select name="Cat" id="Cat" onchange="subCatActivation('')" onclick="realTimeChange(this.id)">
    <option value="title">Main Category</op
    <?php echo $option?>
</select>
<select name="sub_cat" id="sub_cat">
    <option value="Non-Use">Sub-Category</option>
    <div id="opt"></div>
</select>

的PHP

    if(isset($_POST['val'])){
        $mainCat = $_POST['val'];
        $subOption = '';
        $subName = [];
        include"../storeSQL/sql_Connection.php";
        $sql = "SELECT SUB_CAT FROM CATEGORIES WHERE CAT = '$mainCat' GROUP BY SUB_CAT";
        $getQuery = $connection->query($sql);
        $i = 0;
        while($row = $getQuery->fetch_array()){
        $subName[$i] = $row['SUB_CAT'];
        $subOption .= "<option value='$subName[$i]'>$subName[$i]</option>";
        $i++;
    }
    echo $subOption;
}

send功能中使用鍵值對

 hr.send("val="+val);

現在使用sub_cat附加option標簽

  document.getElementById("sub_cat").innerHTML = return_data;

然后在return_data之前添加第一個選項

由於您未在此處發送任何密鑰,因此以下代碼將始終失敗,並且不會進入if塊

 if(isset($_POST['val'])){

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM