Yii ajax调用和会话处理


Yii ajax call and session handling

我在Yii中遇到了一个Ajax调用"bug"。问题是,我必须通过复选框进行搜索,这些复选框在点击搜索按钮后存储在SESSION中。

之后,关键字插入SESSION,我想将它们打印在标记云中。(角落里有一个十字架->删除这个标签)。这些标签的删除由ajax调用处理:

$(".tags a").click(function(e) {
    e.preventDefault();
    var class1 = $(this).attr("class");
    var id = $(this).attr("id");
            $("#checkbox__"+id).removeAttr("checked");
jQuery.ajax({
        url: "recipe/removeFromSession",
        type: "POST",
        data: "id=" + class1+"&rcp="+id,
        dataType: "json",
        "success": function(data){
                    location.reload();
        },
        "error": function(xhr, status, error) {
                        var err = xhr.responseText;
                        alert(xhr.status);
         },
        "cache" : false,
    });
});

它调用removeFromSession操作:

public function actionRemoveFromSession() {
    $remove = intval($_POST['id']);
    unset($_SESSION['searchItems']['category'][$remove]);
    unset($_SESSION['recipeSearch']['category'][$_POST['rcp']]);
    echo json_encode($_SESSION);
}

问题是它没有取消设置值。它仍在会话中。知道吗?(抱歉语法错误)

感谢

你可以试试这个:

设置会话:

Yii::app()->session['searchItems']['category'][$keyword] = "Any string";

取消设置会话:

unset(Yii::app()->session['searchItems']['category'][$remove]);