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我正在进行完整表单提交。