我有這個下拉菜單:獲得選擇下拉菜單中的文本,而不提交按鈕
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.
我的函數語言和im即使會話變量也許錯誤在這裏。
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中設置了會話變量嗎? – Skriptotajs
@Skriptotajs是會話變量工作良好。 –
如果你想重定向你選擇的語言,那麼你也可以使用HTML5 'localStorage.setItem('lang','eng');'並在重定向後得到它 –