如何使用html中的按钮来保持用户在php会话中选择的语言
How to use buttons in html to keep language the user chooses in php session
我有多个PHP文件,需要使用session_start()
来跟踪网站语言。有两个按钮ENG和GRE分配给$_SESSION['lang']
的默认语言是ENG。当用户单击希腊语时,需要更新$_SESSION['lang']
,并且需要显示所有希腊语数据库内容。
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-editable进行内联编辑。
按钮如下:
<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'];
}
相关文章:
- PHP会话页面刷新不起作用
- 如何使用 php 会话变量作为 Angular Js 数据
- 通过Javascript更改PHP会话变量
- PHP会话ID变量与AJAX一起返回
- 从javascript变量获取php会话
- 无法获取php会话变量以在javascript中设置var
- 使用Jquery在页面加载上测试php会话变量
- 需要将一个值从javascript变量保存到php会话
- PHP会话在Aurelia中不起作用
- 更新图像切换上的php会话变量
- 如何设置从数据库到php会话的id点击链接
- php会话不会;单击“提交”按钮时无法处理表单
- 如何在Javascript中使用PHP会话变量
- 跨域php会话上传进度堆栈
- JQuery 变量到 PHP 会话
- 在 javascript 函数中添加 php 会话数据
- 将 JavaScript 变量传递给 PHP 会话
- 如何在javascript文件中访问php会话
- 从javascript中的不同形式获取值并存储在php会话中
- 有时会加载旧的 PHP 会话变量