我有一个带有复选框的用户列表。每次选中复选框时,都会调用一个函数。该函数从复选框中获取userid,该userid应添加到php数组中,然后添加到cookie中。如果cookie还不存在,则应该创建它。cookie的值应该是传递给该函数(id)的JavaScript参数。
我的问题是,我不知道如何动态地实现这一点。例如,当cookie中还没有userid时,应该将其添加到变量[0]中。此外,我如何将JavaScriptID变量传递给PHP以将其设置为cookie值?
这就是我迄今为止所尝试的:
function loadUserCalendar(id) {
console.log('user selected: ' + id);
// check if user is checked or not
if($('input[value="' + id+ '"]').is(':checked')) {
console.log('user ' + id + ' is checked now');
// add user to cookie
<?php
$calendar_users = $_COOKIE['calendar_users'];
if(empty($calendar_users)) {
session_start();
setcookie("calendar_users[" + $calendar_users.length + 1 + "]", "id", time()+3600*24*30*12);
session_commit();
?>
console.log('added user to cookie');
<?php
} else {
?>
console.log('going to add user to existing cookie');
<?php
}
?>
} else {
console.log('user ' + id + ' is UN-checked now');
// remove user from cookie
}
}
感谢您的帮助!非常感谢。
如果您想将一个变量从javascript传递到php,您需要使用AJAX,并且您需要将其保存在会话或数据库中。
请记住,php是一种服务器端语言,在收到响应后,与服务器的连接将关闭。要将数据发送到服务器,您必须刷新整个页面,或者使用AJAX。
此外,javascript cookie和php cookie之间没有区别——它们是相同的。
查看此网站如何在js中设置cookiehttp://www.w3schools.com/js/js_cookies.asp
此外,如果您使用的是jquery,它会更容易:
$.cookie('somecookie', 1);
如何使用jQuery设置/取消设置cookie?
但你需要使用一个插件https://github.com/carhartl/jquery-cookie