簡體   English   中英

表單提交后,動態相關下拉列表中沒有選項

[英]No option in a dynamic dependant drop-down list after form submission

所以,我有一個包含兩個下拉列表的表單: id="dd-1"id="dd-2"

基於id="dd-2"選擇從數據庫創建的id="dd-1"選項; 我在id="dd-1"使用onChange=getChildOf(this.value)來做到這一點。

當用戶在id="dd-1"選擇一個選項時,我運行一個ajax函數,它將id="dd-1"的值傳遞給另一個運行MySqli查詢的PHP頁面,然后更新id="dd-2"

到此為止,一切都很好。

我需要的是:

  1. 記住id="dd-1"的用戶選擇。 DONE
  2. 獲取id="dd-2"基礎上的提交值選項id="dd-1" 尚未完成

表單提交后, id="dd-2"根本沒有顯示任何選項。 所以,我必須再次更改id="dd-1"的選擇,以便ajax getChildOf(val)函數!

所以,我需要你的幫助才能完成#2。


供參考:

id="dd-1"選擇下拉列表看起來像是:

<select id="dd-1" name="dd-1" onChange="getChildOf(this.value)">
    <option value="1" <?php if(isset($_POST['dd-1'])&&$_POST['dd-1']=='1'){echo 'selected';}?> >Option 1</option>
    <option value="2" <?php if(isset($_POST['dd-1'])&&$_POST['dd-1']=='2'){echo 'selected';}?> >Option 2</option>
    <option value="3" <?php if(isset($_POST['dd-1'])&&$_POST['dd-1']=='3'){echo 'selected';}?> >Option 3</option>
</select>

id="dd-2"選擇下拉列表看起來像是:

<select id="dd-2" name="dd-2"></select>

ajax功能:

function getChildOf(val)
{
    $.ajax({
        type:"POST",
        url:"get_dd2_options.php",
        data: 'parentid='+val,
        success: function(data){

            $("#dd-2").html(data);
        }
    });
}

get_dd2_options.php頁面看起來很像:

<html>
<option value="-1">Please Select</option>
<?php
include_once('config.php');

// list all children
$q = mysqli_query($link, "SELECT * FROM table WHERE id = '".$_POST['parentid']."'");

while($r = mysqli_fetch_assoc($q))
{
    $id     = $r['id'];
    $name   = $r['name'];

    ?> <option value="<?=$id;?>" <?php if(isset($_POST['dd-2'])&&$_POST['dd-2']==$id){echo 'selected';}?> ><?=$name;?></option> <?php
} 
?>  

你有兩個選擇,我不知道哪個是最好的,因為我沒有查看完整的代碼庫。

選項1:在檢查dd1設置后發布后,在php中添加另一個dd2檢查。

<?php 
if (isset($_POST['dd-1']) {
    /* populate dd-2 based on dd-1 value*/
}
?>

選項2:添加邏輯以將dd2填充到頁面加載。

暫無
暫無

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

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