如何在选择Select Box值时将参数作为POST数据传递,这将重新加载同一页面?

时间:2013-11-19 07:43:04

标签: javascript php jquery html mysql

我有两个链式选择框“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方法做到这一点怎么做?

3 个答案:

答案 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 ”处理整个选择标记(第二个标记)。就是这样。

以下几条链接可以帮助您完成此任务。

Link_1 Link_2