gpt4 book ai didi

javascript - 如何在 jQuery 中存储多次点击事件的 PHP session 值?

转载 作者:行者123 更新时间:2023-11-28 07:30:29 25 4
gpt4 key购买 nike

我尝试使用 jQuery 在单击按钮时将一些值传递给 session 变量。每个按钮都有唯一的值,我需要在单击两个按钮时显示两个按钮的值。

我遇到的问题是,只有一组值(来自最近单击的按钮)被转换为 session 变量 - 如果我单击第一个按钮,第一个值会很好地传递到 session 后端,但是单击之后的第二个按钮只会导致传递第二个值。

我的 jquery 看起来像这样:

$button_one.click(function(e) {
e.preventDefault();
var var_one = "value1";
var var_two = "value2";
$.post("sessions.php", { 'session_var_one': var_one, 'session_var_two': var_two });
});

$button_two.click(function(e) {
e.preventDefault();
var var_three = "value3";
var var_four = "value4";
$.post("sessions.php", { 'session_var_three': var_three, 'session_var_four': var_four });
});

session.php 非常简单:

<?php

session_start();

$_SESSION['value_one'] = $_POST['session_var_one'];
$_SESSION['value_two'] = $_POST['session_var_two'];

$_SESSION['value_three'] = $_POST['session_var_three'];
$_SESSION['value_four'] = $_POST['session_var_four'];

?>

我设置了一个简单的页面来显示 session 值:

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php

echo '<h5>' . $_SESSION['session_var_one'] . '</h5>';
echo '<h5>' . $_SESSION['session_var_two'] . '</h5>';

echo '<h5>' . $_SESSION['session_var_three'] . '</h5>';
echo '<h5>' . $_SESSION['session_var_four'] . '</h5>';

?>

</body>
</html>

此页面仅显示上次单击的按钮的两个值 - 如果同时单击两个按钮,则不会显示两组值。

我猜测这里的问题可能是有两个单独的 AJAX 请求(每个单击函数中有一个) - 当在按钮一之后单击按钮二时,它会“忘记”第一个请求,因此不会记录值。

我已经通过将每个按钮点击值发送到不同的 session php 页面(即,button_one 转到sessions_one.php,button_two 转到sessions_two.php)来解决这个问题,但我不想创建一个新的存储每个按钮的 session 值的位置。我计划添加更多按钮,但让每个按钮都有一个单独的位置来存储其存储值似乎是一种不好的做法。

我怎样才能重写我的AJAX请求和/或sessions.php,以便我可以存储每次按钮点击的所有值?感谢您的指导,总的来说,我对 PHP 和 AJAX 非常陌生!

最佳答案

如果未提供 $_POST 变量,您的代码将仅将 NULL 放入相应的 $_SESSION 变量中。为了防止这种情况,请在执行此操作之前检查是否已提供:

<?php

session_start();

if( isset($_POST['session_var_one']) ){
$_SESSION['value_one'] = $_POST['session_var_one'];
}
if( isset($_POST['session_var_two']) ){
$_SESSION['value_two'] = $_POST['session_var_two'];
}

if( isset($_POST['session_var_three']) ){
$_SESSION['value_three'] = $_POST['session_var_three'];
}
if( isset($_POST['session_var_four']) ){
$_SESSION['value_four'] = $_POST['session_var_four'];
}

?>

关于javascript - 如何在 jQuery 中存储多次点击事件的 PHP session 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com