[英]Get selected text of dropdown menu without submit button
我有這個下拉菜單:
if(isset($_POST['ss'])){$_SESSION['ss'] = $_POST['ss'] ;}else{$_SESSION['ss'] = 'English';}
<select name = "selectlang" class="selectlang" onchange="location = this.options[this.selectedIndex].value;">
<option value='<?php $website_link ?>?lang=english' <?php if($_SESSION['ss'] == "English"){echo ' selected="selected"' ;} ?>>English</option>
<option value='<?php $website_link ?>?lang=swedish' <?php if($_SESSION['ss'] == "Swedish"){echo ' selected="selected"' ;} ?>>Swedish</option>
<option value='<?php $website_link ?>?lang=russian' <?php if($_SESSION['ss'] == "Russian"){echo ' selected="selected"' ;} ?>>Russian</option>
</select>
<input type="hidden" name="ss" id="lang_hidden" value="" />
這實際上是當我選擇一種語言提交並在URL鏈接中添加?lang=.....
時。 而且效果很好,網址會更改下拉菜單始終為英語的方式。
如何將其更改為所選語言?
我已經用過了,但是沒用。
$(".selectlang").change(function(){
var inpvalue = $('.selectlang option:selected').text();
$("#lang_hidden").val(inpvalue).val();
//$("#lang_hidden").closest('form').trigger('submit'); //(i will explain this)
});
當我取消注釋並添加表單標簽時,我在上面解釋了這一行
<form method="POST" action="">
the above html code
</form>
下拉菜單會保留選定的語言,但不要使用lang=.....
更改鏈接,並且頁面不會翻譯。
如何管理它們以保持選定的下拉菜單文本並更改鏈接?
提前致謝。
//wanna see my function language so let me know.
我的函數語言以及在哪里制作會話變量的地方可能是這里的錯誤。
function setlanguage(){
//$_SESSION['selectlang'] = '';
//if(!isset($_SESSION['selectlang'])){$_SESSION['selectlang'] = 'English' ;}
//if(!isset($_GET['lang'])){$_GET['lang'] = 'english' ;}
if(isset($_GET['lang'])){
switch ($_GET['lang']){
case "english" :
$_SESSION['selectlang'] = 'English';
include("lang/english.php");
break;
case "swedish" :
$_SESSION['selectlang'] = 'Swedish';
include("lang/swedish.php");
break;
case "russian":
$_SESSION['selectlang'] = 'Russian';
include("lang/russian.php");
break;
}
}
else if(!isset($_GET['lang']) and isset($_SESSION['selectlang'])){
switch ($_SESSION['selectlang']){
case "English" :
$_SESSION['selectlang'] = 'English';
include("lang/english.php");
break;
case "Swedish" :
$_SESSION['selectlang'] = 'Swedish';
include("lang/swedish.php");
break;
case "Russian":
$_SESSION['selectlang'] = 'Russian';
include("lang/russian.php");
break;
default :
include("lang/english.php");
}
}
else{include("lang/english.php"); $_SESSION['selectlang'] = 'English';}
}
您使用不同的會話變量名稱
在PHP中
$_SESSION['selectlang'] = 'Russian';
在HTML中
$_SESSION['ss'] == "Russian"
當您重定向頁面時,如果確定,則將值保存到會話變量中,則問題可能出在大寫字母形式。
value='<?php $website_link ?>?lang=english'
更改
<?php if($_SESSION['ss'] == "English"){echo ' selected="selected"' ;} ?>
至
<?php if($_SESSION['ss'] == "english"){echo ' selected="selected"' ;} ?>
請嘗試以下選項。
<option value='<?php $website_link ?>?lang=english' <?php if($_SESSION['ss'] == "english"){echo "selected" ;} ?>>English</option>
or
<option value='<?php $website_link ?>?lang=english' <?php if($_REQUEST['lang'] == "english"){echo "selected" ;} ?>>English</option>
嘗試此操作以更改您的網址,而無需頁面加載。
pageurl = 'yourpage.php?lang=inpvalue;
if(pageurl!=window.location){
window.history.pushState({path:pageurl},'',pageurl);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.