如何使用html中的按钮来保持用户在php会话中选择的语言

问题描述:

我有多个PHP文件,需要使用session_start()来跟踪网站语言。有两个按钮ENGGRE分配给$_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> 

我的问题是如何获得这ENGGRE按钮的ID,如何更新$_SESSION[lang'],将我需要使用在session_start( )在所有文件中?

+3

你应该表现出你的代码的例子迄今为止,SO旨在帮助人们遇到的具体问题。对于你想要做的事情,有太多不同的场景,我们需要知道你想如何做。 –

+0

只提供必要的代码 – Bugfixer

+0

对不起,家伙仍然习惯堆栈溢出会做! –

connection.phpfunctions.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']; 
}