无法使用jQuery填充$ _SESSION

时间:2015-07-01 14:47:05

标签: php jquery session post

我想使用jQuery帖子更新$_SESSION数据 最终我found this script作为系统的基础'。

我创建了以下两个文件作为测试:

t1.php:

<?php
session_start();

/* After refresh, src should be visible */
echo print_r($_SESSION);
?>

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>

<img class="foo" src="img.jpg" />
<img class="foo" src="img2.jpg" />
<img class="foo" src="img3.jpg" />

<script>
$("img.foo").onclick(function()
{
    // Get the src of the image
    var src = $(this).attr("src");

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

t2.php:

<?php
session_start();

$_SESSION['imgsrc'] = $_POST['img'];
?>

不幸的是,刷新t1.php后它不会产生src路径 $_SESSION['imgsrc']保持空白
我已经尝试了一切,也许是为了获得一些东西? 希望你能帮忙!

2 个答案:

答案 0 :(得分:1)

您忘记附加文档就绪处理程序+它不是onclick而是click,请将其添加到您的代码中:

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

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

答案 1 :(得分:0)

也许我到处都看到json,但这是进行沟通的最佳方式。 从PHP处理正确的json将是

$post= file_get_contents('php://input');
$json= json_decode($post,true); // true means json will be assoc array  

然后可以修改您的脚本:

<?php
session_start();

$post= file_get_contents('php://input');
$json= json_decode($post,true);
$_SESSION['imgsrc'] = $json['img'];
?>

有了这个肯定会工作

$.ajax({
  type: "POST",
  url: "/t2.php",
  data: {"img": src},
  dataType: "application/json"
});