0

http://jsfiddle.net/hr5aH/

我是 jQuery 初学者,我这里有一个小问题.. 当我从下拉菜单中选择语言时,页面刷新,但下拉菜单不会显示我选择了哪种语言.. 它仍然是选择语言 - 但是 URL显示我选择的语言,这是我想要的,但不是下拉菜单

例如,如果我从下拉菜单中选择英语

<script type="text/javascript">

$(document).ready(function(){

        $("form").change(function(){

            $("select[name='lang']").attr('selected','selected');
            $("form").submit();

        })

})
</script>

    </head>
    <body>

    <form action="<?php htmlentities($_SERVER['PHP_SELF']); ?>" method="get">

    <select name="lang">

        <option value="">Choose Language</option>
        <option value="English">English</option>
        <option value="Arabic">Arabic</option>
        <option value="French">French</option>

    </select>

我看到了 URL http://127.0.0.1/index.php?lang=english (我想要的)

但下拉菜单仍然选择语言 - 我只想让下拉菜单也向我显示语言。

4

4 回答 4

1

如果您想记住最后选择的语言,那么您需要使用 cookie。使用 jquery cookie 插件。

//checks if the cookie has been set

if($.cookie('remember_select') != null) {

    // set the option to selected that corresponds to what the cookie is set to

    $('.select_class option[value="' + $.cookie('remember_select') + '"]').attr('selected', 'selected');

}

// when a new option is selected this is triggered

$('.select_class').change(function() {

    // new cookie is set when the option is changed

    $.cookie('remember_select', $('.select_class option:selected').val(), { expires: 90, path: '/'});

});

这是你的select样子:

<select class="select_class">
    <option value="1">Row 1</option>
    <option value="2">Row 2</option>
    <option value="3">Row 3</option>
</select>
于 2013-04-28T20:28:27.567 回答
0

尝试:

$("select[name='lang']").change(function(){
    $("form").submit();
})

您可以为此添加:

<option selected disable value="">Choose Language</option>

防止你的 PHP 出错

编辑:

$_SESSION['language'] = $_GET['lang']在你的 jQuery 中

var selected_lang = '<?php echo $_SESSION["language"]; ?>';
$("select[name='lang']").val(selected_lang);
于 2013-04-28T20:24:36.360 回答
0

这需要一些 php 魔法以及您的 HTML 代码:

PHP 代码

</head>
    <body>

    <form action="<?php htmlentities($_SERVER['PHP_SELF']); ?>" method="get">

    <select name="lang">

        <option value="">Choose Language</option>
        <?php foreach(array('English','Arabic','French') as $lang) ?>
        <option value="<?php echo $lang; ?>" <?php if ($_GET['lang']==$lang) echo "selected"; ?>><? echo $lang; ?></option>
       ?>
    </select>

说明: php 代码检查您的 url 并从选择列表中选择适当的选项。

提示:如果您希望代码更简洁,请将所有语言值放在一个数组中并循环遍历它以生成下拉菜单。

于 2013-04-28T20:27:25.637 回答
0

您的 js 脚本必须是:

$(document).ready(function(){

        $("form").change(function(){

            $("select[name='lang']").attr('selected','selected');
            $("form").submit();

        })
        var lang=getURLParameter('lang');
        if(lang!='null')
             $("select[name='lang']").prop('value',lang);

})
function getURLParameter(name) {
    return decodeURI(
        (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
    );
}

函数详情链接getURLParameter()Get URL parameter with jQuery

于 2013-04-28T20:29:09.193 回答