0

問題があり、それがどこにあるのかわかりません。データを php ファイルに送信し、HTML 出力を取得するスクリプトがあり、ページの一部のみを使用するようにフィルタリングしたいと考えています。

私のスクリプトは次のようになります

var newsletter_form  = $(".newsletter_signup_form");
var newsletter_firstname  = $("#newsletter_firstname");
var newsletter_surname  = $("#newsletter_surname");
var newsletter_email  = $("#newsletter_email");

newsletter_form.submit(function(){
    $.post("news_signup.php", $(".newsletter_signup_form").serialize(), function( response ) {
        console.log(response);
        var newletter_messages = $( response ).filter( ".messages" );
        $( ".newsletter_messages" ).html( newletter_messages );
    }).done( function() { console.log( "DONE" ); } );
    return false;
});

そして、私のPHPファイルはこのようなものです。これは基本的なもので、PHPを使用していませんが、応答を取得しようとしています(これは、コンソールでログに記録したときの応答の外観でもあります)

<!doctype html>
<html lang="en">
 <head>
  <title>Document</title>
 </head>
 <body>
  <div class="newsletter_form">
   <form action="" class="newsletter_signup_form">
    <ul>
     <li>
      <input type="text" name="newsletter_firstname" id="newsletter_firstname" placeholder="First Name" />
     </li>
     <li>
      <input type="text" name="newsletter_surname" id="newsletter_surname" placeholder="Surname" />
     </li>
     <li>
      <input type="email" name="newsletter_email" id="newsletter_email" placeholder="Email Address" />
     </li>
     <li>
      <button name="join_btn">Join</button>
     </li>
    </ul>
   </form>
   <div class="messages">
    Something
   </div>
  </div>
 </body>
</html>

そして、これは応答を出力するためのHTMLです

<div class="newsletter_messages">
      Loading....
</div>

だから私は応答から ".messages" を取得し、応答で ."newsletter_messages" を更新したいと考えています。

console.log は、完全な HTML が Javascript に返されていることを示していますが、HTML をフィルタリングして更新しようとすると、空白になります。

filter() の html() メソッドを適切に使用していないように感じます。私はまだJqueryを学んでいます。また、別の for に対してのみ同じことを行う別の post メソッドがあります。そのメソッドは、filter() および html() 呼び出しで問題なく動作します。この例では、他のすべての Jquery コードをいじっていた場合に備えてコメントしましたが、それでも何もありません。

誰かがそれを見つけたり、正しい方向に向けたりできますか?

助けてくれてどうもありがとう

4

1 に答える 1