onchange事件处理URL重定向和表单submit()

时间:2011-09-03 01:10:56

标签: javascript jquery

我有表单提交,因为它是一个简单的

onchange="submit();"

                            <div class="cities">Select City <form method="post" action="<?php echo $PHP_SELF;?>" style="float:right;"><select name="city_select" id="city_select" onchange="submit();"><option>-----</option>
                        <option value="Beijing" <?php if($_SESSION['city_selected'] == 'Beijing') { echo 'selected=selected';} else { echo ''; }?> >Beijing</option>
                        <option value="Shanghai" <?php if($_SESSION['city_selected'] == 'Shanghai') { echo 'selected=selected';} else { echo ''; }?> >Shanghai</option>
                        <option value="Guangzhou" <?php if($_SESSION['city_selected'] == 'Guangzhou') { echo 'selected=selected';} else { echo ''; }?> >Guangzhou</option>
                        <option value="Manila" <?php if($_SESSION['city_selected'] == 'Manila') { echo 'selected=selected';} else { echo ''; }?> >Manila</option>
                        <option value="HongKong" <?php if($_SESSION['city_selected'] == 'HongKong') { echo 'selected=selected';} else { echo ''; }?> >Hong Kong</option>
                        <option value="Tokyo" <?php if($_SESSION['city_selected'] == 'Tokyo') { echo 'selected=selected';} else { echo ''; }?> >Tokyo</option>
                        <option value="Seoul" <?php if($_SESSION['city_selected'] == 'Seoul') { echo 'selected=selected';} else { echo ''; }?> >Seoul</option>
                        <option value="Taipai" <?php if($_SESSION['city_selected'] == 'Taipai') { echo 'selected=selected';} else { echo ''; }?> >Taipai</option>
                        </select></form>
                        <div style="clear:both;"></div>
                        </div>

我正在尝试提交表单并重定向到网址。我想知道这是否可行。我已经尝试实现了一个jquery $ .change事件,但它没有在表单submit()

之前触发

如果有人可以提供帮助,那就太棒了。谢谢!

5 个答案:

答案 0 :(得分:0)

你的提交功能在哪里?

你能尝试这样吗

<select name="city_select" id="city_select" onchange="this.form.submit();">

应该有效

答案 1 :(得分:0)

您尚未显示提交功能的作用,但如果它提供了正常的表单提交(不是AJAX),那么您需要稍后重定向。

通常情况下,您可以正常提交表单,然后在下一页加载时,该页面会设置一个“位置”标题,告诉浏览器重定向。

例如,在表单提交时运行的任何PHP代码中,您都需要通过执行以下操作重定向:

header('Location', 'http://mysite.com/page-to-redirect-to.php');

答案 2 :(得分:0)

您只需要“Jquery Form Plugin”

http://jquery.malsup.com/form/#ajaxForm

使用此插件,表单会在不离开页面的情况下提交“操作”地址。完成后,您可以使用回调函数重定向。

<script>
    $(document).ready(function(){
        $('#FORM_ID').ajaxForm(function(data) {
            window.location="http://www.REDIRECT_URL.com/"; 
        });                          
    });
</script>

如果你需要这个onchange,你可以使用这个:

<script>
    $(document).ready(function(){   

        $('#FORM_ID').ajaxForm(function(data) {
            window.location="http://www.REDIRECT_URL.com/"; 
        });  

        $('#city_select').change(function(){
            $('#FORM_ID').trigger('submit');
        });

    });
</script>

答案 3 :(得分:0)

只需在php中执行: header('Location: ' . the_url_to_redirect);

答案 4 :(得分:0)

if(isset($_POST['city_select'])) {

$_SESSION['city_selected'] = $_POST['city_select'];

if($_POST['city_select'] == "Beijing") {
    header("Location: /city-beijing/");
}
if($_POST['city_select'] == "Shanghai") {
    header("Location: /city-shanghai/");
}
if($_POST['city_select'] == "Guangzhou") {
    header("Location: /city-guangzhou/");
}
if($_POST['city_select'] == "Manila") {
    header("Location: /city-manila/");
}
if($_POST['city_select'] == "HongKong") {
    header("Location: /city-hong-kong/");
}
if($_POST['city_select'] == "Tokyo") {
    header("Location: /city-tokyo/");
}
if($_POST['city_select'] == "Seoul") {
    header("Location: /city-seoul/");
}
if($_POST['city_select'] == "Taipai") {
    header("Location: /city-taipai/");
}

else{

}

}

这对我有用:),干杯。