[英]select option by XMLHttpRequest for language selection
請幫我解決這個想法:我想要 select 語言並在選擇后刷新頁面,它應該更改當前頁面的語言。 我的目標:從下拉列表中選擇后,我通過 document.getElementById('language'); 獲取值 and want to send this value to next page, named ajax_lang.php and set in that page the SESSION and after that want to get the Session to refresh the page with Session laguage.
我已經復制了我嘗試過的代碼。但是失敗了。 請幫我解決。 提前致謝。 part 1.php code for session start: part 2: javascript part 3. html code part 4: ajax_lang.php
if(!isset($_SESSION))
{
session_start();
}?>
<div style="margin-top:39px;background: #e9e9e9;margin-left:158px">
<select style="width: 40px;height: 40px;border-radius: 50%;width: 40px;
border: none;position: absolute;margin-top: 0px;"
name="language" id="language" onchange="loadDoc(this.value)">
<option value=""><?php echo $_SESSION['lang'];?></option>
<option value="ru">RU</option>
<option value="en">EN</option>
</select>
</div>
<script>function loadDoc() {
const xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("language").innerHTML =
this.responseText;
}
};
//xhttp.open("POST", "ajax_lang.php");
xhttp.open("POST", "ajax_lang.php");
var select = document.getElementById('language');
var lang = select.options[select.selectedIndex].value;
console.log(lang); // en
xhttp.send({lang:lang});
}
//loadDoc();
</script>
<?php
if(!isset($_SESSION['lang'])){
session_start();
$_SESSION['lang']=$_POST['lang'];
}
?> ```
XMLHttpRequest.send
不采用普通的 object 作為參數,它采用字符串或URLSearchParams
object。 請參閱下面的URLSearchParams
示例。
xhttp.send(new URLSearchParams({lang:lang}));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.