因此,我有一个表单,其中包括两个下拉列表: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"的值传递给另一个PHP页面,在该页面中运行MySqli查询,然后更新id="dd-2"。
到现在为止,一切都很好。
我需要的是:
id="dd-1"中的用户选择。DONEid="dd-2"值获取id="dd-1"选项。未完成表单提交后,id="dd-2"根本不显示任何选项。因此,我必须再次更改id="dd-1"中的选择,以便触发ajax getChildOf(val)函数!
所以,我需要你的帮助,请帮我把第二件事做完。
FYI:
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
}
?>
发布于 2017-06-25 02:26:39
您有两个选项,我不知道哪一个最好,因为我没有查看完整的代码库。
选项1:在post之后,当您检查要设置的dd1时,在php中添加另一个dd2检查。
<?php
if (isset($_POST['dd-1']) {
/* populate dd-2 based on dd-1 value*/
}
?>选项2:添加将dd2填充到页面加载的逻辑。
https://stackoverflow.com/questions/44737248
复制相似问题