我有两个链式选择框“pr_cat”和“sl_num”。第二个选择框值取决于在第一个选择框中选择的值。
<tr>
<td width="257">Select Product Category:</td>
<td width="197">
<select name="pr_cat" id="Validprcat" onChange="reload(this.form)"><option value="">< Select one ></option>
<?php while($prd=mysql_fetch_object($select_query1)) {
if ($prd->cat_id==$pcat) { ?>
<option selected value="<?php echo $prd->cat_id?>"><?php echo $prd->category_name?> </option>
<?php } else { ?>
<option value="<?php echo $prd->cat_id?>"><?php echo $prd->category_name?></option>
<?php }}?>
</select>
</td>
</tr>
<tr>
<td>Select Serial Number:</td>
<td>
<select name="sl_num" id="Validslnum" onChange="reload2(this.form)"><option value="">< Select one ></option>
<?php while($slnum=mysql_fetch_object($quer)) {
if ($slnum->serialno==$pcat2) { ?>
<option selected value="<?php echo $slnum->serialno?>"><?php echo $slnum->serialno?> </option>
<?php } else {
?>
<option value="<?php echo $slnum->serialno?>"><?php echo $slnum->serialno?></option>
<?php }} ?>
</select>
</td>
</tr>
<tr>
我使用表单重新加载javascript来重新加载具有在选择框中选择的值的页面。我使用了GET方法。
<script language=JavaScript>
function reload(form)
{
var val=form.pr_cat.options[form.pr_cat.options.selectedIndex].value;
self.location='delivery.php?pcat=' + val ;
}
function reload2(form)
{
var val=form.pr_cat.options[form.pr_cat.options.selectedIndex].value;
var val2=form.sl_num.options[form.sl_num.options.selectedIndex].value;
self.location='delivery.php?pcat=' + val + '&pcat2=' + val2 ;
}
</script>
但是我想用POST方法做到这一点怎么做?
答案 0 :(得分:1)
如果您不想使用ajax,并通过POST方法执行,那么而不是
onChange="reload(this.form)"
致电
onChange="formSubmit();"
<script>
function formSubmit()
{
document.getElementById("frm1").submit(); //frm1 is form id
//OR you can use
//document.frm1.submit(); //frm1 is form name
}
</script>
注意: - 如果您在此表单中有任何提交按钮,请不要将其名称保留为提交,否则您的代码中会出现问题。
答案 1 :(得分:0)
我认为您提出的问题非常多:JavaScript post request like a form submit
但是,为什么要重新加载页面而不是进行AJAX调用?
答案 2 :(得分:0)
我为您提供了最简单,最快捷的方式来做您想做的事,
AJAX:
用''标记
覆盖两个选择框<div id='first_select'>
<select id='first' onchange='populate_second_select(this.value)'>
<option>Select</option>
</select>
</div>
<div id='second_select'>
<select>
<option>Select</option>
</select>
</div>
在第一个选择框中完成更改后调用populate_second_select()
函数。
在ajax中没有,
function populate_second_select(value)
{
$.ajax({
method:'POST',
url:'ajax.php',
data: {value:value},
success:function(result)
{
document.getElementById("second_select").innerHTML=result;
showLightBox();
}
});
}
这就是你的javascript函数的样子,
在ajax.php文件中,根据所选值处理数据库,并使用“ echo ”处理整个选择标记(第二个标记)。就是这样。
以下几条链接可以帮助您完成此任务。