Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提交表单后,动态从属下拉列表中没有选项_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript 提交表单后,动态从属下拉列表中没有选项

Javascript 提交表单后,动态从属下拉列表中没有选项,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,因此,我有一个包含两个下拉列表的表单:id=“dd-1”&id=“dd-2” 根据id=“dd-1”选择从数据库创建的id=“dd-2”选项;我正在使用id=“dd-1”中的onChange=getChildOf(this.value)来实现这一点 当用户在id=“dd-1”中选择一个选项时,我运行一个ajax函数,该函数将id=“dd-1”的值传递到另一个PHP页面,在该页面上运行MySqli查询,然后更新id=“dd-2” 到目前为止,一切都很好 我需要的是: 记住id=“dd-1”中的用户

因此,我有一个包含两个下拉列表的表单:
id=“dd-1”
&
id=“dd-2”

根据
id=“dd-1”
选择从数据库创建的
id=“dd-2”
选项;我正在使用
id=“dd-1”
中的
onChange=getChildOf(this.value)
来实现这一点

当用户在
id=“dd-1”
中选择一个选项时,我运行一个ajax函数,该函数将
id=“dd-1”
的值传递到另一个
PHP
页面,在该页面上运行
MySqli
查询,然后更新
id=“dd-2”

到目前为止,一切都很好

我需要的是:

  • 记住
    id=“dd-1”
    中的用户选择完成
  • 根据提交的
    id=“dd-1”
    值获取
    id=“dd-2”
    选项未完成
  • 提交表单后,
    id=“dd-2”
    完全不显示任何选项。因此,我必须再次更改
    id=“dd-1”
    中的选择,以便启动
    ajax
    getChildOf(val)函数

    所以,我需要你的帮助来完成第2步。
    供参考:

    id=“dd-1”
    select下拉列表如下所示:

    <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>
    
    <select id="dd-2" name="dd-2"></select>
    
    <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
    } 
    ?>  
    

    ajax
    函数:

    function getChildOf(val)
    {
        $.ajax({
            type:"POST",
            url:"get_dd2_options.php",
            data: 'parentid='+val,
            success: function(data){
    
                $("#dd-2").html(data);
            }
        });
    }
    

    get\u dd2\u options.php
    页面看起来很像:

    <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>
    
    <select id="dd-2" name="dd-2"></select>
    
    <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:在post之后,当您检查要设置的dd1时,您将在php中添加另一个dd2检查

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

    您有两个选择,我不知道哪一个最好,因为我没有查看完整的代码库

    选项1:在post之后,当您检查要设置的dd1时,您将在php中添加另一个dd2检查

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

    您是在做完整表单提交还是ajax帖子?如果是前者,在再次显示表单之前,您是否可以检查dd1的值并在PHP中填充dd2?@Russell我正在进行完整表单提交。您是在进行完整表单提交还是ajax发布?如果是前者,在再次显示表单之前,您能否检查dd1的值并在PHP中填充dd2?@Russell我正在进行完整表单提交。