0

我和阿贾克斯的第一次郊游。我正在尝试捕获单个复选框的值,如果选中,则将 PHP $_SESSION 变量设置为 true。

在 HTML 我有这个。

 <input type="checkbox" name="agree" id="agree"/>
and the js is this....not sure what to put in the AJAX data params??
    $(document).ready(function() {
            $('#agree').click(function(){ 
                $.ajax({
                    url: 'agree.php',
                    type: 'GET',
                    data: { agreement:"checked" } //NOT Sure ABout this??
                });      
        })
    });

和 PHP,伪代码可能是因为它不工作..

if($_GET['agreement'] == 'checked') {
$_SESSION['hm-agreement'] = true;
     } else {
$_SESSION['hm-agreement'] = false;

}

4

2 回答 2

0

您需要检查是否选中了装箱,无论您向 php 文件发送什么,您的代码现在都将会话变量设置为 true。

还使用了 get 与 ajax 的简写,更少的代码

HTML

<input type="checkbox" name="agree" id="agree"/>

JS

$(document).ready(function() {
    $('#agree').click(function(){ 
        $.get('agree.php','agreement=' + ( this.checked ? 1 : 0 ) });
    })
});

PHP

session_start();
if($_GET['agreement']) {
    $_SESSION['hm-agreement'] = true;
} else {
    $_SESSION['hm-agreement'] = false;
}
于 2013-02-12T00:41:05.840 回答
0

AJAX 调用似乎很好。也许您应该在 PHP 脚本中添加一些调试,并使用 Firebug 或其他开发工具进行查看。

不要忘记在脚本开头start_session()使用您的 PHP脚本。如果省略此调用,则会话对象不存在。

于 2013-02-12T00:33:05.543 回答