2017-12-24 12 views
0

xmlhttpリクエストを使用して小さなデータ(PHPループ)をロードする方法を解明しようとします。私が使用している機能が完璧に働いているAjaxリクエスト(または同様のJavascriptソリューション)を使用してPHPループをロード

、しかし私は、ファイル「gallery.php」であるだけでPHPのループをロードしたいと思います:

function refreshData(){ 

        var display = document.getElementById("content"); 
        var xmlhttp = new XMLHttpRequest(); 

        xmlhttp.open("GET", "<?php echo esc_url(home_url('/')) ?>gallery/"); 
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
        xmlhttp.send(); 

        xmlhttp.onreadystatechange = function() { 
        if (this.readyState === 4 && this.status === 200) { 
         display.innerHTML = this.responseText; 
        } else { 
         display.innerHTML = "Loading..."; 
        }; 
        } 
       } 

を私はポストを持っていると私は試してみますよこの投稿にバインドされた画像を読み込む。 gallery.phpのループはここにある:

<?php $images = get_attached_media('image'); 

      foreach($images as $image) { ?> 
       <div> 
        <img src="<?php echo wp_get_attachment_url($image->ID,'full'); ?>"/> 
       </div> 
      <?php } ?> 

私はボタンがXMLHTTPリクエストでクリックされた後の画像で、このループをロードしたいが、私は動的なデータを要求するかの助けが必要なのです。

ありがとうございました。

答えて

2

ワードプレスのテーマにAJAXでの作業中に、あなたは例えばのでワードプレスのAjaxアクションフックhttps://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)

を使用する必要があります。

add_action('wp_ajax_get_galleryimage', 'get_galleryimage'); 

function get_galleryimage() { 
// than here you put the code to get the images of the given posts, you 
//should send post id from the js 

// Don't forget to stop execution afterward. 
wp_die(); 
} 

あなたが使用して、そのページを作成する必要はありません。フックのあなたのajax呼び出しは、このURLになりますホームホーム../wp-admin/admin-ajax.php?action = get_galleryimage

+0

ありがとう、しかし私はフロントエンドでjQueryを含む多くのものを解体したので、このソリューションを使用することはできません。だからこそ、私はxmlhttpのデータを取得するリクエストを作る方法を理解しようとしています。 – MadMatt

+0

これを使うことができます。このフックと関数を登録して、関数名がget_galleryimage()であればxmlhttpリクエストをそのURL /wp-admin/admin-ajax.php?action=get_galleryimageに送りますあなたがjsでやっていることと一緒に。そして、その機能よりもギャラリーの投稿IDを送信してください。必要に応じてサンプルコードを送信できます –

+0

このソリューションは完璧に機能しました。 – MadMatt

関連する問題