PHP保留邮箱后的selectbox值


PHP retain selectbox value after postbox

我正试图动态地从第一个下拉列表中拉第二个下拉列表值,我目前有一个问题,我的第一个下拉列表选择值在每次回发时被重置为第一个

在我的例子中是[php useadvancedfilter] is <?php and [php useadvancedfilter] is ?>

        $dateofcoupon = $_POST["dateofcoupon"];
        <form id="form1" name="form1" action="<?php $_SERVER['PHP_SELF']?>" method="post">
        <select name="dateofcoupon" onchange="run()" id="dateofcoupon">
        [php useadvancedfilter]
        while($fetch_couponalldetais = mysql_fetch_array($getcouponalldetais )){
        $checkcoupon = $fetch_couponalldetais['coupon-date']
        [/php useadvancedfilter]
        <option [php useadvancedfilter] if(isset($dateofcoupon) && $dateofcoupon==$fetch_couponalldetais['coupon-date']) echo "selected"; [/php useadvancedfilter] value="[php useadvancedfilter] echo $fetch_couponalldetais['coupon-date']; [/php useadvancedfilter]">[php useadvancedfilter] echo $fetch_couponalldetais['coupon-date']; [/php useadvancedfilter]</option>
        [php useadvancedfilter]
        }
        [/php useadvancedfilter]
        </select>
        </form>

使用JavaScript提交表单

<script>
function run(){
   document.getElementById("form1").submit();
}
document.getElementById("dateofcoupon").value = "<?php echo $_POST['dateofcoupon'];?>";
</script>

您只是使用javascript来访问本机提交方法,该方法提交表单并重新加载页面。为了实现表单提交而不重新加载页面(这是导致表单重置的原因),您需要查看ajax API方法。

所以函数run()可以用一个简单的jQuery函数代替。像这样:

$(function(){ //document.ready() shortcut
    $('#form1').submit( function(){ //the submit event
        var QueryString = $(this).serialize(); //get the form values
        $.post('your-url.php',QueryString, function(data){ //post the form with the querystring, then setup the callback
            alert(data);//your data callback
        });
        return false;//prevent native browser form submission
    });
});

有关jquery ajax方法的更多信息,请参见:

jquery发布

jquery ajax

jquery得到

jquery getjson