2011-07-25 149 views
0

這是我再次。我對這個代碼感到非常沮喪,它甚至不好笑。這不是我想再發布一次。只是,現在我明白代碼中的問題出在哪裏,並且想知道你們是否可以幫我弄清楚最後一部分。Ajax Post PHP Div刷新

基本上我試圖刷新一個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 

現在,我使用此代碼運行到這個問題是在阿賈克斯的一部分。放置alert()後,我已經確定如果我使用這樣的函數():

success: function(data) 

然後警報就出來了空白。其背後的原因是我的網址到我的PHP文件,但我試圖刷新我的div是在我的HTML文件。這意味着如果我這樣做:

success: function(data) { 
       $("#div").html(data)} 

我送空白的數據,因爲它試圖從我的PHP文件,而不是我的HTML文件中的股利。

現在,如果我這樣做:

$("#div").html() 

然後,讓我的div是我的html文件。

通過了解現在發生了什麼,你們能幫我嗎?

+0

你的問題不清楚給我。你確切的問題是什麼?你只是從你的PHP文件或一些HTML發送數據? –

+0

發生了什麼事是我的查詢是在我的PHP文件。我的div在我的html文件上。現在這篇文章是完美的,因爲當我刷新整個頁面時,它顯示了正在放置的消息。但我想要做的是在帖子發佈時刷新它。就像你們在這裏一樣。 – JAG

+0

我使用alert()來查看我的div發生了什麼。它是空白的。當funtion(data){alert(「data:」+ data)}但是當我這樣做:funtion(){alert(「data:」+ $(「#div」)。html())}那麼我的div警報。 – JAG

回答

0

親愛的你應該在你的php文件中生成一些你想在你的div中生成的html。然後你會看到你在成功功能中有data中的一些內容。這是一個簡單的方法。 但也有一些更高效的方法,但它需要某種搜索。這是Client Side Scripting的執行。你可以在jquery插件jquote2的幫助下做到這一點。我希望它能爲你工作。

+0

謝謝...很多... – JAG

0

您使用

$("#div").fadeOut($("#div").html()); 
$("#div").fadeIn($("#div").html()); 

兩者都是錯誤的,jQuery的.fadeIn().fadeOut()參數用[時間] [回調]或[時間] [緩解] [回調。沒有把HTML作爲輸入。

嘗試改變

$("#div").fadeOut($("#div").html()); 

$("#div").fadeOut(); 

,移動它的$之外。Ajax調用來隱藏以前顯示(如有)後的結果之前,改變

$("#div").fadeIn($("#div").html()); 

$("#div").html(result).fadeIn(); 

而且改變

success: function() 

success: function(result) 

希望能幫助到你。

+0

只是想感謝你們所有人的幫助......在你的幫助下,我得到了它的工作......謝謝你... – JAG

+0

不客氣,不要忘記接受一個awnswer。 – Spyros

0

這可能是一個與PHP腳本的響應有關的問題。 jquery並不總是正確地將Ajax響應呈現爲html。

設置dataType: html$.ajax({ ... })呼叫可以幫助。還在您的php ajax腳本的頂部設置header("Content-Type: text/html");