Ajax Post PHP Div Refreshing


Ajax Post PHP Div Refreshing

又是我。我对这段代码感到非常沮丧,它甚至不有趣。这并不是说我想再贴一次。只是现在我明白了代码中的问题在哪里,想看看你们是否可以帮助我找出最后一部分。

基本上我试图刷新一个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脚本的顶部