jquery ajax 表单已发送,但var_dump($_POST)为空


jquery ajax form sended, but var_dump($_POST) empty

各位,我遇到了一个非常简单的问题,但我真的很困惑......联合国一小时

在PHP页面中,我有代码:

<script>
$( document ).ready(function() {
  $("#date_avant").click(function(){
    $.post( "_corps_medecin_changedate.php", { name: 'test', id: '1' } );
    $("#consultations_jour").load("_corps_medecin_changedate.php");
  });
});
</script>

在页面_corps_medecin_changedate.php中,就在开头,我有代码:

<?php
var_dump($_POST);
$date_debut = $_POST['name'];
?>

我得到了味精:

array (size=0)
  empty
Notice: Undefined index: name

我检查了Firebug,帖子列表中的参数是正确的,所以我认为它被正确发送,但只是在操作页面中无法接收。

Server info :   Apache/2.2.11 (Win32) PHP/5.4.4

并在当地环境中。

谁能帮我?

您从$.post调用返回的数据不会自动提供给.load()调用。它们是两个独立的函数,这意味着您对load调用本质上不会向 PHP 脚本发送 POST 数据。

您可以将 post 参数作为调用的一部分传递给 load

<script>
    $( document ).ready(function() {
        $("#date_avant").click(function(){
            $("#consultations_jour").load("_corps_medecin_changedate.php", { name: 'test', id: '1' });
        });
    });
</script>

你必须在回调函数中处理 post 请求的结果,如下所示:

<script>
$( document ).ready(function() {
   $("#date_avant").click(function(){
    $.post( "_corps_medecin_changedate.php", { name: 'test', id: '1' }, 
         function(result) { $("#consultations_jour").html(result);} );
  });
});
</script>

在您的代码中,您发出 2 个不同的请求(第一个在 .post 函数中,第二个在 .load 中)。

那是因为您在没有发布数据的情况下发布帖子后再次向右(.load())调用_corps_medecin_changedate.php,并且您没有使用回调。

 $("#consultations_jour").load("_corps_medecin_changedate.php"); //here

由于帖子是异步的....load() 函数(不在帖子的回调中)在您调用 post 后立即调用,并且不会等待它

我不知道你为什么要在发布我认为不需要的帖子后再次加载相同的 PHP 页面......但作为一个例子...您可以使用回调...检查您发布的数据

  $.post( "_corps_medecin_changedate.php", { name: 'test', id: '1' },function(data){
     alert('done');
  });
 //$("#consultations_jour").load("_corps_medecin_changedate.php");

试试这个,你应该在你的PHP页面中得到发布的值。