1

大家,我遇到了一个非常简单的问题,但我真的很困惑......一小时

在一个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

并且在当地环境中。

谁能帮我?

4

3 回答 3

1

您从$.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>
于 2013-10-17T10:55:48.760 回答
0

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

<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 中)。

于 2013-10-17T10:54:52.887 回答
0

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

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

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

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

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

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

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

于 2013-10-17T10:56:14.407 回答