0

我正在尝试使用按钮使用 jquery 中的函数重置 php 中的会话数组。我会使用提交,但我不希望页面刷新。我试图发送一个$.post保留变量并返回空白的请求,然后发送一个变量以便我可以使用 $_session[''] = array() 但它都不起作用。我已经搜索过,但在发送字符串时找不到太多关于它的信息。

4

5 回答 5

0

User below jquery to submit to php code

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

    }

});
于 2013-09-06T12:43:57.413 回答
0

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

但是,您可以模拟您想要使用 javascript 执行的操作。

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

于 2013-09-06T12:47:12.580 回答
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代码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";
)


?>

我希望这有帮助 。

于 2013-09-06T13:07:06.573 回答
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';
?>
于 2013-09-06T13:10:09.270 回答
0

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

在 reset.php 中

$_SESSION['products'] = array();

?> 当在没有页面刷新的情况下单击重置按钮时,这会重置我的会话数组...

我最初是这样做的,忘记将我的 core.php 包含在包含我的 start session() 的 reset.php 中。虽然谢谢大家的帮助....很好的建议

于 2013-09-07T22:32:04.220 回答