PHP AJAX JSON 表单提交时的下拉值
PHP AJAX JSON Drop Down value on form submission
我想在提交表单时保留下拉列表的值。我有两个下拉菜单 - 部门和项目通过 AJAX 相互关联。当我提交时,页面被重新加载,默认部门和项目的值是所有部门和所有项目,但是我希望保留用户选择的值。
这是代码。如果缺少其余代码,请原谅,因为我只显示了所需的代码。
<html><head><script type="text/Javascript">
function showdept(){
$('#deptdropdown').empty();
$('#deptdropdown').append("<option value='0'> All Departments </option>");
$('#projectdropdown').append("<option value='0'> All Projects </option>");
$.ajax({
type:"POST",
url:"departmentdropdown.php",
contentType:"application/json; charset:utf-8",
dataType:"json",
success: function(data){
$('#deptdropdown').empty();
$('#deptdropdown').append("<option value='0'> All Departments </option>");
$.each(data,function(i,item){
$('#deptdropdown').append('<option value="'+ data[i].deptID +'">'+ data[i].deptname +'</option>');
});
},
complete: function(){
}
});
}
function showproject(deptID){
$('#projectdropdown').empty();
$('#projectdropdown').append("<option value='0'> All Projects </option>");
$.ajax({
type:"POST",
url:"projectdropdown.php?dID="+deptID,
contentType:"application/json; charset:utf-8",
dataType:"json",
success: function(data){
$('#projectdropdown').empty();
$('#projectdropdown').append("<option value='0'> All Projects </option>");
$.each(data,function(i,item){
$('#projectdropdown').append('<option value="'+ data[i].proID +'">'+ data[i].projectname+'</option>');
});
},
complete: function(){
}
});
}
$(document).ready(function(){ //Initial call to the functions.
showdept(); //Shows all the departments.
$("#deptdropdown").change(function(){ //When department changes, call the project function
var deptid=$("#deptdropdown").val();
showproject(deptid);
});</script></head><body><div id="container" style="min-height:500px; border-bottom:2px solid grey"><div id="verticaldropdown" style="width:200px; background:yellow; border-right: 1px solid grey; min-height:500px; float:left">
<form method="POST" action="">
<div align="center">
<div>Department</div>
<div><select name="dept_selected" style="width:160px" id="deptdropdown"></select></div>
</div>
<br />
<div align="center">
<div>Project</div>
<div><select name="project_selected" style="width:160px" id="projectdropdown"></select></div>
</div>
<br />
<div align="center">
<input type=submit value='Go' name='showcompliance'>
</div>
</form>
</div>
</div>
</body>
</html>
您需要所选项目的深度和项目 ID:
$.each(data,function(i,item){
if(data[i].deptID==choosen_dept){
$('#deptdropdown').append('<option value="'+ data[i].deptID +'" selected>'+ data[i].deptname +'</option>');
}else{
$('#deptdropdown').append('<option value="'+ data[i].deptID +'">'+ data[i].deptname +'</option>');
}
});
您有 2 个选项来解决此问题:
1) 您可以使用AJAX提交表单,这不会清除表单
中的选择
2) 您可以在页面刷新后使用PHP预填下拉列表中的值。
请选择一个,我将相应地编辑我的答案。
我想在提交表单时保留下拉列表的值。我有两个下拉菜单 - 部门和项目通过 AJAX 相互关联。当我提交时,页面被重新加载,默认部门和项目的值是所有部门和所有项目,但是我希望保留用户选择的值。
这是代码。如果缺少其余代码,请原谅,因为我只显示了所需的代码。
<html><head><script type="text/Javascript">
function showdept(){
$('#deptdropdown').empty();
$('#deptdropdown').append("<option value='0'> All Departments </option>");
$('#projectdropdown').append("<option value='0'> All Projects </option>");
$.ajax({
type:"POST",
url:"departmentdropdown.php",
contentType:"application/json; charset:utf-8",
dataType:"json",
success: function(data){
$('#deptdropdown').empty();
$('#deptdropdown').append("<option value='0'> All Departments </option>");
$.each(data,function(i,item){
$('#deptdropdown').append('<option value="'+ data[i].deptID +'">'+ data[i].deptname +'</option>');
});
},
complete: function(){
}
});
}
function showproject(deptID){
$('#projectdropdown').empty();
$('#projectdropdown').append("<option value='0'> All Projects </option>");
$.ajax({
type:"POST",
url:"projectdropdown.php?dID="+deptID,
contentType:"application/json; charset:utf-8",
dataType:"json",
success: function(data){
$('#projectdropdown').empty();
$('#projectdropdown').append("<option value='0'> All Projects </option>");
$.each(data,function(i,item){
$('#projectdropdown').append('<option value="'+ data[i].proID +'">'+ data[i].projectname+'</option>');
});
},
complete: function(){
}
});
}
$(document).ready(function(){ //Initial call to the functions.
showdept(); //Shows all the departments.
$("#deptdropdown").change(function(){ //When department changes, call the project function
var deptid=$("#deptdropdown").val();
showproject(deptid);
});</script></head><body><div id="container" style="min-height:500px; border-bottom:2px solid grey"><div id="verticaldropdown" style="width:200px; background:yellow; border-right: 1px solid grey; min-height:500px; float:left">
<form method="POST" action="">
<div align="center">
<div>Department</div>
<div><select name="dept_selected" style="width:160px" id="deptdropdown"></select></div>
</div>
<br />
<div align="center">
<div>Project</div>
<div><select name="project_selected" style="width:160px" id="projectdropdown"></select></div>
</div>
<br />
<div align="center">
<input type=submit value='Go' name='showcompliance'>
</div>
</form>
</div>
</div>
</body>
</html>
您需要所选项目的深度和项目 ID:
$.each(data,function(i,item){
if(data[i].deptID==choosen_dept){
$('#deptdropdown').append('<option value="'+ data[i].deptID +'" selected>'+ data[i].deptname +'</option>');
}else{
$('#deptdropdown').append('<option value="'+ data[i].deptID +'">'+ data[i].deptname +'</option>');
}
});
您有 2 个选项来解决此问题:
1) 您可以使用AJAX提交表单,这不会清除表单
中的选择
2) 您可以在页面刷新后使用PHP预填下拉列表中的值。
请选择一个,我将相应地编辑我的答案。