使用jQuery设置PHP $ _SESSION ['var']

mmu*_*iff 34 php jquery session-variables

我需要使用jQuery设置PHP $ _SESSION变量.如果用户点击图像,我想将与该图像相关联的信息保存为php中的会话变量.

我想我可以通过调用php页面或函数并将该信息附加到查询字符串来实现.

有任何想法吗.我通过谷歌找到了一些帮助.

谢谢迈克

Luk*_*nis 78

你不能单独通过jQuery来做到这一点; 你需要一个Ajax(你可以用jQuery做)和一个PHP后端的组合.一个非常简单的版本可能如下所示:

HTML:

<img class="foo" src="img.jpg" />
<img class="foo" src="img2.jpg" />
<img class="foo" src="img3.jpg" />
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$("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("/backend.php", {"img": src});
});
Run Code Online (Sandbox Code Playgroud)

PHP(backend.php):

<?php
    // do any authentication first, then add POST variable to session
    $_SESSION['imgsrc'] = $_POST['img'];
?>
Run Code Online (Sandbox Code Playgroud)

  • 缺少session_start(); 在除此之外的后端,这是一个很棒的提示!谢谢卢克...... (19认同)

Bry*_*n A 7

可能想尝试将PHP函数放在另一个PHP页面上,并使用AJAX调用来设置变量.


Haw*_*ger 5

您正在寻找的是jQuery Ajax.然后只需设置一个php页面来处理请求.


Nol*_*lte 5

这里的很多回答都是针对原因而不是原因.PHP $ _SESSION键/值对存储在服务器上.这与存储在浏览器中的cookie不同.这就是您能够从PHP和JavaScript访问cookie中的值的原因.更糟糕的是,来自浏览器的AJAX请求不包括您为网站设置的任何cookie.因此,您必须使JavaScript拉出会话ID cookie并将其包含在服务器的每个AJAX请求中,以便能够对其进行正面或反面.从好的方面来说,PHP会话旨在故障转移到HTTP GET或POST变量,如果cookie不与HTTP标头一起发送.