又是我。我对这段代码感到非常沮丧,它甚至不有趣。这并不是说我想再贴一次。只是现在我明白了代码中的问题在哪里,想看看你们是否可以帮助我找出最后一部分。
基本上我试图刷新一个div没有重新加载整个页面。我要死了。这里有更多的信息:
首先是我的js文件
$(function() {
$(".button").click(function() {
// validate and process form
// first hide any error messages
var email = $("input#email").val();
//var dataString = '&email=' + email; commented out
var dataString = email;
//try insted this //alert (dataString);return false;
$.ajax({ type: "POST", dataType:'HTML',
//or the appropiate type of data you are getting back
url: "http://www.edshaer.com/EdinburgCISD/Gorena/Gorena.php", data: {email:dataString},
//in the php file do $email = $_POST['email'];
//not a good practice but you can try with it and without it
success: function() {
$("#div").fadeOut($("#div").html());
$("#div").fadeIn($("#div").html());
$("#email").val('');
// Change the content of the message element
// Fade the element back in
} });
//ajax ends
return false; });
//click ends
});//document ready ends
现在我在这段代码中遇到的问题是Ajax部分。放置alert()之后,我意识到如果我像这样使用函数():
success: function(data)
然后警报显示为空白。这背后的原因是,我的URL是去我的php文件,但我的div,我试图刷新是在我的html文件。意思是如果我这样做:
success: function(data) {
$("#div").html(data)}
我正在发送空白数据,因为它试图从我的php文件而不是我的html文件中获取div。
现在如果我这样做:
$("#div").html()
这就给出了我的html文件中的div
知道现在发生了什么,你们能帮帮我吗??
亲爱的,你应该在你的php文件中生成一些html,你想在你的div中生成。然后你会看到你在成功函数的data
中有一些内容。这是一个简单的方法。但也有其他一些更有效的方法,但它需要一些搜索。这是客户端脚本的实现。你可以在jquery插件jquote2的帮助下做到这一点。我希望它对你有用。
你正在使用
$("#div").fadeOut($("#div").html());
$("#div").fadeIn($("#div").html());
都是错误的,jQuery .fadeIn()
和.fadeOut()
参数要么是[duration,] [callback]或[duration,] [easing,] [callback]。不接受HTML作为输入。
尝试改变
$("#div").fadeOut($("#div").html());
$("#div").fadeOut();
并将其移到$。Ajax调用隐藏之前显示的结果(如果有的话),并更改
$("#div").fadeIn($("#div").html());
$("#div").html(result).fadeIn();
也改变
success: function()
success: function(result)
希望能有所帮助。
这可能是与php脚本的响应有关的问题。Jquery并不总是正确地将Ajax响应呈现为html。
在$.ajax({ ... })
呼叫中设置dataType: html
有帮助。同样设置header("Content-Type: text/html");
在您的php ajax脚本的顶部