0

我有一个带有复选框的用户列表。每次选中复选框时,都会调用一个函数。该函数从复选框中获取用户 ID,并且此用户 ID 应添加到 php 数组中,然后添加到 cookie 中。如果 cookie 尚不存在,则应创建它。cookie 的值应该是传递给此函数 (id) 的 JavaScript 参数。

我的问题是我不知道如何动态地制作它。例如,当 cookie 中还没有用户 ID 时,应将其添加到变量 [0]。此外,如何将 JavaScript id 变量传递给 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
    }
}

任何帮助表示赞赏!谢谢你。

4

1 回答 1

0

如果要将变量从 javascript 传递到 php,则需要使用 AJAX,并且需要将其保存在会话或数据库中。

请记住,php 是一种服务器端语言,与服务器的连接会在您收到响应后关闭。要将数据发送到服务器,您要么必须刷新整个页面,要么使用 AJAX。

此外,javascript cookie 和 php cookie 之间没有区别——它们是相同的。

查看此网站如何在 js 中设置 cookie http://www.w3schools.com/js/js_cookies.asp

此外,如果您使用的是 jquery,它会容易得多:

$.cookie('somecookie', 1);

如何使用 jQuery 设置/取消设置 cookie?

但是您需要为此使用插件https://github.com/carhartl/jquery-cookie

于 2013-07-04T09:02:02.117 回答