こんにちは。ajaxとプラグイン「multi device switcher」の動作で悩んでいます。
wordpressで作られたサイトに、ボタンをクリックするとajaxで5件ずつ投稿記事を取得し表示する機能を作りました。$.ajax()部分の記述は以下のようにしています。
javascript
1$.ajax({ 2 url: ajaxurl, 3 type: "POST", 4 cache : false, 5 data: { 6 'action': 'hogehoge', 7 }, 8 dataType: 'json', 9 success: function(arr){ 10 console.log(arr);//コンソール画面には「0」が表示されます 11 //arrに格納された5件の記事データをhtmlに追加する記述 12 }, 13 error:function(){console.log('Miss..')} 14});
また、actionで呼び出しているPHPの関数hogehogeは以下のようにしています。
PHP
1function hogehoge(){ 2 $data = array(); 3 4 global $wpdb; 5 $sql = "SQL文"; 6 $results = $wpdb->get_results($sql); 7 8 foreach($results as $row){ 9 $data[] = $row; 10 } 11 12 nocache_headers(); 13 header('Content-Type: application/json; charset=utf-8'); 14 echo json_encode($data); 15 die(); 16}
以前はこれで正常に動作していたのですが、プラグイン「multi device switcher」を入れるとうまく動作しなくなりました。配列arrがゼロになるのでmySQLでデータの取得に失敗しているのかと思いましたが、SQL文の記述に問題はなさそうです。
エラー文は「Uncaught TypeError: Cannot read property 'post_content' of undefined」と表示されています。(post_contentは配列arrのキーの名前です)
そもそもarrがちゃんと取れていないのでエラー文見ても…という感じがします。
同じような問題にぶち当たった方、この辺の動作に詳しい方ご教授お願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/07 08:26