首先,道歉爲簡單的問題,但它超出了我的技能水平,我已經完成了我的研究,我不能再盯着它。php會話變量通過選擇框更新以顯示/隱藏不同語言的div
我正在構建一個需要以3種不同語言(英語,西班牙語和葡萄牙語)提供的站點,並且這些站點通過右側欄上的選擇輸入來選擇。我有一個js函數顯示/隱藏相關div onchange,但會話變量消失時,我離開了頁面。我也不確定如何讓我保存的顯示/隱藏的div保持狀態,當我改變頁面。所有頁面使用它調用在session_start()
選擇框代碼頭模板:
<div id="languageSelect">
<?php
$_SESSION['language'] = $_POST['languageDropdown'];
?>
<form method="post" action="<?php echo $PHP_SELF;?>">
<select name="languageDropdown" id="languageDropdown" class="languageDropdown" onchange="selectLanguage();submit();">
<option name="English" value="English" <?php if (($_SESSION['language'] == '') || ($_SESSION['language'] == 'English')) echo 'selected="selected"'; ?>>English</option>
<option name="Español" value="Español" <?php if ($_SESSION['language'] == 'Español') echo 'selected="selected"'; ?>>Español</option>
<option name="Português" value="Português" <?php if ($_SESSION['language'] == 'Português') echo 'selected="selected"'; ?>>Português</option>
</select>
</form>
</div>
javascript代碼段(成功改變語言當前頁)
function selectLanguage() {
if (document.getElementById('languageDropdown').selectedIndex == 0){
$('#nav-en').show();
$('#content-en').show();
$('#nav-es').hide();
$('#content-es').hide();
$('#nav-pt').hide();
$('#content-pt').hide();
}
的方式我已經嘗試解決我的問題是通過在提交會話變量時讓選擇框保持其選項(),然後讓javascript函數讀取哪個選項仍然在頁面加載時被選中並顯示/隱藏相關的div,但沒有這樣的運氣。
$(function(){
if (document.getElementById('languageDropdown').selectedIndex == 0){
$('#nav-en').show();
$('#content-en').show();
$('#nav-es').hide();
$('#content-es').hide();
$('#nav-pt').hide();
$('#content-pt').hide();
}
if (document.getElementById('languageDropdown').selectedIndex == 1){
$('#nav-en').hide();
$('#content-en').hide();
$('#nav-es').show();
$('#content-es').show();
$('#nav-pt').hide();
$('#content-pt').hide();
}
if (document.getElementById('languageDropdown').selectedIndex == 2){
$('#nav-en').hide();
$('#content-en').hide();
$('#nav-es').hide();
$('#content-es').hide();
$('#nav-pt').show();
$('#content-pt').show();
}
});
我是相當新的PHP,但我做了我的研究,所以任何幫助將不勝感激。
你是什麼意思「會話變量消失」? '$ _SESSION ['language'] = $ _POST ['languageDropdown']' - 也許這行評估它不是一個post請求並將session變量設置爲null? – vbo
@vbo對不起,在那裏模糊。我在我用來測試會話變量的幾頁上有回聲。 \t <?php echo「語言是:」。 $ _SESSION [ '語言']; ?>它會顯示「The Language is:English」,直到我改變頁面。在哪一點它恢復到「語言是:」 – user3122675
好的。那麼會話變量賦值呢?看起來它必須被'if($ _POST)'包圍。 – vbo