2011-07-25 15 views
0

もう一度私です。私はこのコードではとても面白くなくても面白くない。私は再びそれを掲示したいと思うわけではありません。コードに問題がどこにあるのかを理解していて、最後の部分を理解するのに役立つかどうかを知りたかったのです。AjaxポストPHP部リフレッシュ

基本的に、ページ全体を再読み込みせずに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ファイルにあるということです。意味私はこれを行う場合:私のPHPファイルの代わりに、私のhtmlファイルからのdivを取得しようとしているため

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

私は空白のデータを送信しています。

私はこれを行う場合今:私は私のhtmlファイルであるdiv要素を与えるその後

$("#div").html() 

今起こっていることを知ることで、皆さんは私を助けてください?

+0

あなたの質問は私には分かりません。あなたの正確な問題は何ですか?あなたはあなたのPHPファイルまたはいくつかのHTMLからデータを送信するだけですか? –

+0

何が起こっているのは私のクエリが私のPHPファイルにあるということです。私のdivは私のhtmlファイルにあります。今私はページ全体をリフレッシュするときにメッセージが配置されていることを示すので、投稿は完全に動作しています。私がやっていることは、投稿が行われたときにそれをリフレッシュすることです。皆さんがここにいるようなものです。 – JAG

+0

私は自分のdivで何が起こっていたかを見るためにalert()を使いました。それは空白になっていた。私がこれをしたときにfuntion(){alert( "data:" + $( "#div")。html()}}警報に出す。 – JAG

答えて

0

私の親愛なるあなたのdivで生成したいと思うあなたのPHPファイルの何らかのhtmlを生成する必要があります。それでは、成功関数にdataの内容があることがわかります。これは簡単な方法です。 しかし、効率的ですが何らかの検索が必要な方法もあります。これはClient Side Scriptingの実装です。これは、jqueryプラグインjquote2の助けを借りて行うことができます。それがあなたのために働くことを願っています。あなたは

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

を使用している

+0

ありがとうございます...あまりにも多く... – JAG

0

どちらも、jQueryの.fadeIn()間違っていると.fadeOut()引数はどちらか[期間、] [コールバック]または[期間、] [緩和、] [コールバック]です。 HTMLを入力として使用しません。

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

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

を変更し、$外に移動してみてください。以前にポストする前に(もしあれば)結果を示したとも

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

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

を変更また

success: function(result) 

success: function() 

を変更隠すためにAJAX呼び出しそれが役に立てば幸い。

+0

あなたの助けを借りて皆様にお礼を言いたいと思います...私はそれを働かせて...ありがとうございました... – JAG

+0

あなたは歓迎です、忘れないでくださいawnswerを受け入れる。 – Spyros

0

これは、PHPスクリプトからの応答に関連する問題かもしれません。 JqueryはAjaxレスポンスをhtmlとして正しく表示するとは限りません。

設定dataType: html$.ajax({ ... })に設定すると便利です。また、header("Content-Type: text/html");をphp ajaxスクリプトの先頭に設定してください。