我正在使用PHP
,JQuery
和MongoDB
创建网络应用,并且遇到了$.post
的问题。我有一个带有表格的页面,其中每一行都由CSS设计的自定义按钮标记。我使用以下脚本来获取该按钮的索引并将其传递给PHP文件。这将获得正确的索引并将其发布到文件中。
<script>
$(".completed").click(function() {
var index = $(".completed").index(this);
$.post("lock.php", {position: index});
});
</script>
lock.php
应该将此索引放入会话变量并加载名为display_page.php
的新页面,但display_page
永远不会加载,并且Firebug中不会显示任何错误。我已尝试直接发布到display_page
,但这并没有改变任何内容。这是我的lock.php的样子:
<?php
$pos = $_POST['position'];
session_start();
$_SESSION['index'] = $pos;
header('Location: display_page.php');
?>
如果有人能指出我正确的方向,我会非常感激。
答案 0 :(得分:1)
您需要执行以下操作: -
<script>
$(".completed").click(function() {
var index = $(".completed").index(this);
$.post("lock.php", {position: index},function( data ){
if(data == 'success'){ // check the response
window.location.href = 'display_page.php'; // if response is success then redirect to the page
}else{
// some alert message
}
});
});
</script>
在php页面中: -
<?php
session_start(); // first write this session start code
if(isset($_POST['position'])){ // check values are coming or not
$pos = $_POST['position'];
$_SESSION['index'] = $pos;
echo "success"; // return success to ajax
}else{
echo "failure"; // return failure to ajax
}
?>
答案 1 :(得分:1)
你有很多不同的回调:
var jqxhr = $.post( "example.php", function() {
alert( "success" );
})
.done(function() {
alert( "second success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "finished" );
});
jqXHR对象