这是我第一次尝试AJAX,无法从data.php文件中检索输出。
这是到目前为止的代码,并非所有代码都包括在内,只是适用的代码:
索引.php
<article class="post">
<form name="form"><input type="hidden" name="postid" value="<?php echo $value['post_id'];?>" />
</article>
<div id="main-post">
<div id="gotpostid">some text</div>
</div>
.js文件
$(".cover-img").click(function(){
$("#main-post").fadeIn(1000);
$.post("data.php", {postid: form.postid.value},
function(output){
$("#gotpostid").html(output).show();
});
});
数据.php
<?php
echo 'got this from data.php';
?>
数据.php文件与.js位于同一目录中。
目前,当我单击图像时,它会显示"main-post"div,但其中的"gotpostid"仍然只显示"一些文本",而不会将其替换为php文件中的输出文本。
这是添加以下代码的结果:
.fail(function(x,y,z){ $("#gotpostid").html(x + "<br />" + y + "<br />" + z)})
[对象对象] 错误未找到
我发现这个错误主要归功于 Kevin B 关于添加 .fail() 的建议。
.php文件的网址不正确,应该js/data.php
。
向 ajax 处理程序添加一个错误方法,以了解是否发生了意外情况
$(".cover-img").click(function(){
$("#main-post").fadeIn(1000);
var jqxhr = $.post("/echo/html/", {postid: form.postid.value},
function(output){
$("#gotpostid").html(output).show();
})
.error( function()
{
console.log( "error" );
})
return false;
});
如果尚未完成,请安装 FireBug,并在响应函数中执行控制台.log(输出)。你看到你的回应了吗?