如何使用html中的按钮来保持用户在php会话中选择的语言
问题描述:
我有多个PHP文件,需要使用session_start()
来跟踪网站语言。有两个按钮ENG和GRE分配给$_SESSION['lang']
的默认语言是英寸。当用户点击希腊语时,需要更新$_SESSION['lang']
,并且需要显示希腊语中的所有数据库内容。如何使用html中的按钮来保持用户在php会话中选择的语言
的functions.php
<?php
include "connection.php";
session_start();
function getLang(){
if (isset($_GET['lang'])){
return $lang = $_GET['lang'];
}
else{
return $lang='ENG';
}
}
function getValue($name,$connection){
$lang = getLang();
$query = "SELECT Text FROM users WHERE Nickname='$name' AND Lang='$lang'";
$result = mysqli_query($connection, $query);
$text = mysqli_fetch_assoc($result);
return checkText($text['Text'],$name,$connection);
}
function checkText($text,$name,$connection){
if ($text==null){
$sql = "SELECT Text FROM users WHERE Nickname='$name' AND Lang='Eng'";
$result = mysqli_query($connection,$sql);
$text = mysqli_fetch_assoc($result);
return $text['Text'];
}
else{
return $text;
}
}
function getPk($name,$connection){
$lang = getLang();
$query = "SELECT id FROM users WHERE Nickname='$name' AND Lang='$lang'";
$result = mysqli_query($connection,$query);
$text = mysqli_fetch_assoc($result);
return $text['id'];
}
的index.php
<?php include "functions.php";
session_start();
$_SESSION['lang'] = 'ENG';
?>
这是我开始的会话。
<script>
$(document).ready(function(){
$('.lang').on('click',function(){
var lang = $(this).attr('id');
});
});
</script>
<script>
var pks = [];
var nicks = [];
$(document).ready(function(){
$('#bt').on('click',function(){
$('.to_edit').each(function(){
var a = $(this).attr('data-pk');
var nick = $(this).attr('data-name');
$(this).wrapInner("<a class='edit1'></a>");
$('.edit1').attr('data-type','text');
pks.push(a);
nicks.push(nick);
});
var i=0;
$('.edit1').each(function() {
$(this).attr('data-pk', pks[i]);
$(this).attr('data-name',nicks[i]);
i++;
});
$.fn.editable.defaults.mode='inline';
var options = {};
options.url = 'update.php';
$('.edit1').editable(options);
});
});
</script>
第一个脚本是我到目前为止已经写为有ENG和GRE写作的按钮,第二个是内联编辑用X-编辑。
下面是按钮:
<button class="lang" id="En"><a href="?lang=ENG">ENG</a></button>
<button class="lang" id="Gr"><a href="?lang=GRE">GRE</a></button>
我的问题是如何获得这ENG和GRE按钮的ID,如何更新$_SESSION[lang']
,将我需要使用在session_start( )在所有文件中?
答
在connection.php
或functions.php
像他们开始使用session_start()
的权利,你应该总是包括在每一个文件,你有。
<?php
session_start();
$servername = "localhost";
$username = "root";
..
在已包含在所有其他文件相同的文件,如果语言已经改变添加条件:
if(!isset($_SESSION['lang'])) { $_SESSION['lang'] = 'ENG'; }
if(isset($_GET['lang'])) {
$_SESSION['lang'] = $_GET['lang'];
}
你应该表现出你的代码的例子迄今为止,SO旨在帮助人们遇到的具体问题。对于你想要做的事情,有太多不同的场景,我们需要知道你想如何做。 –
只提供必要的代码 – Bugfixer
对不起,家伙仍然习惯堆栈溢出会做! –