重新加载时保存选择

时间:2011-04-21 11:39:21

标签: javascript html

当我使用javascript location.href重新加载页面时,如何在选择框中保存我选择的选项?

2 个答案:

答案 0 :(得分:1)

页面本身没有状态,也不会记住用户重新加载时所做的任何事情。

如果您正在使用服务器端语言,您可以将值保存在服务器上的某个位置(数据库或简单的平面文件),但如果您只是使用javascript并且无法将值保存到服务器,则可以看看saving the value to a cookie,然后在页面重新加载时恢复该值。

如果你真的有冒险精神,HTML5还可以让你将内容保存到名为local storage的内容,虽然这只有更高级的浏览器支持。

答案 1 :(得分:0)

您可以使用$ _GET发送和检索选择框状态。

Live Demo

代码:

<form>
    Select Option:<br />
    <select name="foo" id="foo">
    <?php echo_select(10); ?>
    </select>
    <input type="submit" name="submit" Value="Do location.href" onclick='return do_foo();' />   
</form><br />
Press Button and on page-load, your selected value will be pre/auto-selected.

<script type=text/javascript>
    function do_foo(){
    var foo = document.getElementById('foo').value;
    //alert("location.href is: "+document.URL+"var="+foo);
    window.location.href = document.URL+"var="+foo;
    return false;
    }
</script>

<?php
//print_r($_GET);

function echo_select($number){
    for($i=0;$i<$number;$i++){
        echo "<option value=".($i+1);
        if(isset($_GET["var"]) && ($_GET["var"]==($i+1))){
            echo " selected=\"selected\"";
        }
        echo ">Text ".($i+1)."</option>";
    }
}
?>

当然,此代码段假定您使用PHP生成表单代码。但是,如果您以不同方式生成和处理表单,请告诉我。