各位,我遇到了一个非常简单的问题,但我真的很困惑......联合国一小时
在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页面中得到发布的值。