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