在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
在当地的环境中。
任何人都可以帮助我吗?
答案 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页面中获得发布的值。