使用jquery函数重置PHP $ _SESSION数组

时间:2013-09-06 12:27:19

标签: php javascript

我正在尝试使用按钮在jquery中使用函数重置php中的会话数组。我会使用提交,但我不希望页面刷新。我试图发送一个$.post请求,留下变量并返回空白,然后发送一个变量,这样我就可以使用$ _session [''] = array(),但没有一个工作。我已经搜索过了,在发送字符串时发现了很多东西。

5 个答案:

答案 0 :(得分:0)

用户在jquery下面提交到php代码

var requestData = { param: "value"};
$.ajax({
    url: your_url/session_change.php,
    type: "post",
    dataType: "json" or what ever,
    data: your_data,
    success: function (data) {

    }

});

答案 1 :(得分:0)

您可以使用ajax调用在服务器端成功结束会话,但除了重新加载页面之外,您不会清除客户端已加载的信息。一旦你重新加载,会话信息就不会存在,但没有办法解决这个问题。

但是,你可以模仿你想用javascript做什么。

当您加载会话信息时,将其作为javascript变量回显到页面,然后您就可以在客户端完全控制。显然,要注意回复密码等敏感信息。

答案 2 :(得分:0)

确定这是非常简单的停止页面刷新你需要告诉js禁用默认事件我使用jquery这里是我的代码

Html& JS     

<html>
<head>
    <title>Reseting a PHP $_SESSIO array with jquery function</title>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
    <script>

        function sessRest(){
            $.post("rest.php", {x: "9845621"}).done(function(data){
                alert("States: " + data);
            });
        }

        $(document).ready(function(){

            $("#target").click(function(event){
                event.preventDefault();
                sessRest();
            });
        });
    </script>
</head>
<body>
    <div id="main">
        <a href="#" id="target">Click to rest me</a>
    </div>
</body>
</html>    

php code rest.php

<?php
session_start();

(string)$data = $_POST['x'];

if($data == "9845621"){
    $_SESSION['gx'] = array();
    return $_SESSION['gx']; //return the empty array to js
}else(
    return "error";
)


?>

我希望这会有所帮助。

答案 3 :(得分:0)

试试这个:

你的html文件应该包含这个jQuery文件:

$('#button').click(function(e){
    e.preventDefault();
    jQuery.ajax({
         url: 'http://yourwebsite.com/session.php'
         }).done(function(data){
        if(data=='reseted'){
                     //do anything...
        }
        else {
                     //do anything...
        }
       })
    });

并在你的session.php文件中:

<?php
    session_start();  
    session_unset();  
    if($_SESSION == FALSE){  
       echo 'reseted';  
    }  
    else echo 'no';
?>

答案 4 :(得分:0)

答案是 jquery $ .post('reset.php');

在reset.php中

$ _ SESSION ['products'] = array();

&GT?; 当单击重置按钮而没有页面刷新时,这会重置我的会话数组...

我最初这样做了,忘记将我的core.php包含在reset.php中,其中包含我的start session().. 谢谢大家的帮助......很棒的建议