0

单击图像时,我需要更改一些会话变量。

所以我在相关图片上添加了一个类(这些图片是标志)。它用于翻译网站。

在我的网站中,语言是使用 session var 定义的,默认设置为英语。

所以人们可以改变它们

<img src="images/fr.png" title="French" alt="French" class="flag" id="fr">这是我得到的一种图像。所以我添加了class和Id,

然后我使用 jquery 编写了以下代码,使其在同一页面上无需重新加载:

<script type="text/javascript">
            $(document).ready(function () {
                $("img.flag").click(function(){
                    // Get the src of the image
                    var src = $(this).attr("id");

                    // Send Ajax request to backend.php, with src set as "img" in the POST data
                    $.post("lib_php/session.php", {"lang": src});
                })
            })
        </script>

在我发送帖子的页面上,我只有该代码:

<?php
session_start();
    // do any authentication first, then add POST variable to session
    $_SESSION['lang'] = $_POST['lang'];
?>

问题是什么都没有改变,一切都保持不变。

我不知道我错在哪里

Anylind 的帮助将不胜感激。

4

3 回答 3

2

光看上面的代码很难说。据我所知,jQuery 和 PHP 的语法看起来都很好。我想您的问题是由以下原因之一引起的:

  • 您没有将信息发布到正确的页面。检查方法:在您的 PHP 中echo $_POST['lang']
  • 您没有包括session_start()所有 PHP 页面。
  • 由于没有正确包含 jQuery,您甚至没有发布帖子 - 检查您的浏览器控制台以查看是否实际触发了 POST 调用。
于 2013-08-19T07:53:23.207 回答
1

尝试以下检查是否一切正常:

$.post("lib_php/session.php", {"lang": src} ,function(data)
{
    alert (data);
});

然后在会话 php 中:

echo  $_SESSION['lang'];
于 2013-08-19T07:56:29.317 回答
1

您必须session_start();在您正在使用的文件中使用<script>

<?php session_start(); ?>

<script type="text/javascript">
            $(document).ready(function () {
                $("img.flag").click(function(){
                    // Get the src of the image
                    var src = $(this).attr("id");

                    // Send Ajax request to backend.php, with src set as "img" in the POST data
                    $.post("lib_php/session.php", {"lang": src});
                })
            })
        </script>

替代功能

我试过了$.ajax,它有效。请试试这个

<img src="images/fr.png" title="French" alt="French" class="flag" id="fr" />

<script type="text/javascript">
$('img.flag').click(function() {
    var src = $(this).attr("id");
    $.ajax({
        type:'POST',
        data: {lang: src},
        url:'lib_php/session.php'
    });
});
</script>

注意:重要的<script type="text/javascript">是在img标签之后

于 2013-08-19T07:58:49.067 回答