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

时间:2013-10-17 10:51:59

标签: php jquery ajax post

每个人,我都遇到了一个非常简单的问题,但我真的很困惑......一点一刻

在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

我检查了萤火虫,参数在帖子列表中是正确的,所以我认为它被正确发送,但只是在行动页面中接收到。

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

在当地的环境中。

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

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

您可以将帖子参数作为通话的一部分传递给load

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

答案 1 :(得分:0)

你必须在回调函数中处理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>

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

答案 2 :(得分:0)

这是因为你在没有发布数据的帖子之后再次正确地调用_corps_medecin_changedate.php.load())..并且你没有使用回调..

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

由于post是async ... .load()函数(不在帖子的回调中)在你调用post后立即被调用,而不是等待它

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

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

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

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