クライアント・サーバ間のAjaxを用いた非同期通信 – browser-land

クライアント・サーバ間のAjaxを用いた非同期通信

 ブラウザ側の処理 (index.php など)

var wp_url_admin_ajax = “<?php echo admin_url(‘admin-ajax.php’); ?>”;
var pArray = new Array;

jQuery(function ($) {
 $.ajax({
  type: ‘POST’,
  url: wp_url_admin_ajax,
  dataType: ‘text’,
  timeout: 3000,
  data: {
   ’action’: ‘tell_me’,
   ’category_name’: vCategory_Name,
  },
  success: function (response) {
   json = eval(“(” + response + “)”);
   if (json.err) {
    result = “error:404”;
   } else {
    pArray = json;
   }
  }
 });
});

admin_url(‘admin-ajax.php’)
 WordPressでAjaxを使う場合、データを送る先のurlが決まっています
 phpファイルの中で、JavaScrptの変数にファイルのパスを代入します

type: 通信に利用するHTTPメソッド

* GET : URLに付加してリクエストします (デフォルト)
* POST : Bodyに含めてリクエストします

dataType: 受信データの種類 (デフォルトは自動推測)

* text : プレーンテキスト
* html : HTMLデータ
* xml : XMLデータ
* json : jsonデータ
* script : JavaScriptデータ

timeout: タイムアウト時間 (初期値は 0 で時間無制限)
 サーバからの返信が無い時、ローディングが延々と続く事態を回避します

url
 「wp_url_admin_ajax」を指定します

data: 送信データ (「キー名: 値」のハッシュ形式)
 クエリーパラメータを指定するには「data」オプションに設定します

 サーバー側の処理 (function.php)

add_action(‘wp_ajax_tell_me’, ‘tell_me’);
add_action(‘wp_ajax_nopriv_tell_me’, ‘tell_me’);

function tell_me() {
 //クエリに “paged” パラメーターを追加する事でWordPress は
 //どのページを表示するか正確に知ることができる (ページネーションのエラー対策)
 $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;

 $args = array(
  ’category_name’ => $_POST[‘category_name’],
  ’paged’ => $paged,
  ’post_type’ => array(
   ‘post’, // – 投稿。
   ),
 );
 // The Query
 $the_query = new WP_Query( $args );

 //変数の設定
 $php_array = array();
 $v_cnt = 0;

 // The Loop
 if ( $the_query->have_posts() ) {
  while ( $the_query->have_posts() ) {
   $the_query->the_post(); //次のループに進む
   $cat = get_the_category();
   $cat = $cat[0];

   //配列に保存する
   $php_array[‘cat_name’][$v_cnt] = $cat->name; //カテゴリ名
   $php_array[‘title’][$v_cnt] = get_the_title(); //タイトル
   $php_array[‘article_id’][$v_cnt] = get_the_ID(); //投稿ID
   //リストではない場合は記事本文を取得する
   if ($_POST[‘article_id’] != “”){
    $php_array[‘content’][0] = get_the_content(); //投稿ID
   }
   $v_cnt += 1;
  }
  wp_reset_postdata(); //クエリをリセット
 }
 
 //phpからJavaScriptに変数の値を引き渡す
 echo json_encode($php_array, JSON_UNESCAPED_UNICODE);
 
 die();
}

add_action(‘○○○’, ‘tell_me’);;
 ログイン状態・非ログインのユーザーからのアクセスで動作する

Browser-Land

: DATA

: BLOG

All
CSS
HTML5
JavaScript
WordPress

: MAIL


 

 

 

: PRAVACY POLICY

タイトルへ

サウンド設定

スクリーン設定

プレイ
データ
設定
停止
次へ
戻る
戻る
戻る
削除
再配置
戻る
戻る
メール
ブログ
Twitter
ポリシー
ユニット
武器
サークル
ボックス
コード
キング
ソルジャー
アーチャー
ウィザード
スペーサー
ギア
ホイール
クランク
フレームA
フレームB
レール
ウォール
ワイヤー
ゴム紐
カップ
大砲
弾倉
ウッド材
アイアン材
透過材
+5 deg.
-5 deg.
+45 deg.
-45 deg.
右回転
左回転
動力無し
Turn Right
Turn Left
Neutral
ロード
セーブ
バトル
ロード