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