【问题标题】:PHP / JavaScript: How to pass variable from one page to anotherPHP / JavaScript:如何将变量从一个页面传递到另一个页面
【发布时间】:2015-06-16 10:24:09
【问题描述】:

我是 PHP 新手,希望有人可以帮助我。

我有一个页面 (index.php),用户可以在其中选择一种语言。 如果没有选择语言,则页面 URL 只是 index.php,默认为英语。 如果他们选择了一种语言,则页面会重新加载,并且变量 ?lang=xy 会添加到定义页面语言的 URL 中。 例如。对于德语,页面 URL 将是 index.php?lang=de

到目前为止,一切都按预期工作。

现在我在索引页面上有一个导航栏,可以导航到其他页面,这些页面都保存为单独的 php 文件(如page1.php, page2.php, page3.php 等)。

我该如何管理如果有人在索引页面上选择了一种语言,然后导航到另一个页面语言变量被传递到所有其他页面? 例如。对于德语,其他页面应为 page1.php?lang=de, page2.php?lang=de, page3.php?lang=de 等。

我知道我可以在每个页面上使用 $_GET["lang"] 来获取变量,但找不到使用 PHP 或 JavaScript/jQuery 将其从索引页面传递到其他页面的方法,理想情况下我可以将此设置为更通用,而不是为每个链接单独设置。

注意:
我正在使用带有标准链接的无序列表来创建我的导航栏,例如:

<li><a href="page1.php">Page1</a></li>

有人可以帮我解决这个问题吗?

提前非常感谢。

【问题讨论】:

  • 你可以使用php会话

标签: javascript php jquery variables get


【解决方案1】:

您可以使用 cookie 来做到这一点

setcookie(name, value, expire, path, domain, secure, httponly);

即:

setcookie('language', 'german', 60000,"/");

然后用

检查这个
$_COOKIE["language"]

http://php.net/manual/en/features.cookies.php参考

【讨论】:

  • 非常感谢 - 这是完美的!你能解释一下“德语”后面的部分在这里做什么吗?
  • 这是 cookie 在过期之前的持续时间,您需要创建另一个(以秒为单位),例如 60*60*24 将持续一天。
  • 再次感谢杰克!知道了。 “/”是什么意思?
  • 这只是它的存储路径,大多数情况下保持为“/”。
【解决方案2】:

您可以使用会话将变量传递到任何页面,它比 cookie 更安全,因为它是服务器端,

示例:

发布数据后:

<?php
    session_start();
        if(isset($_POST)){
        $var_name=$this->db->real_escape_string($_POST['input_name']);
        $_SESSION['var1_sess']=true;
        $_SESSION['var1_sess']=$var_name;
        }
?>

注意:session_start() 必须在文件的第一行。

【讨论】:

  • 安全在这里并不是真正的问题,只是存储一种语言。
【解决方案3】:

如果您使用选择语言,只需添加 onchange 事件,然后将表单提交到 index.php

<form action="index.php">
    <select name="lang" onchange="javascript:this.form.submit()">
        <option value="en">English</option>
        <option value="xy">XY</option>
    </select>
</form>

在同一个页面

<?php  
$lang = $_GET['lang'];
if(empty($lang)){
    $lang = "en";
}
?>

然后将 $lang 传递到你想要的地方

<li><a href="page1.php?<?php echo $lang; ?>">Page1</a></li>

【讨论】:

    猜你喜欢
    • 2011-04-15
    • 2019-03-06
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多