我是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>
我看到了网址http://127.0.0.1/index.php?lang=english
(我想要的是什么)
但是下拉菜单仍然在选择语言 - 我只想在下拉菜单中向我显示语言。
答案 0 :(得分: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>
答案 1 :(得分: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);
答案 2 :(得分: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代码会检查您的网址,并从选择列表中选择相应的选项。
提示:如果您希望使用更干净的代码,请将所有语言值放在一个数组中并循环显示它以生成下拉菜单。
答案 3 :(得分: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