Jquery $ .post无法按预期工作

时间:2015-06-10 14:05:13

标签: javascript php jquery mongodb

我正在使用PHPJQueryMongoDB创建网络应用,并且遇到了$.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');
?>

如果有人能指出我正确的方向,我会非常感激。

2 个答案:

答案 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对象

http://api.jquery.com/jquery.post/#jqxhr-object