前提・実現したいこと
ボタンをクリックしたら、JSの送信された配列がphpで表示さするようにしたいです。
以前にも同じシステムで質問していますがその後、少し進んでいますが別の問題が発生したので質問させていただきます。
問題点分かる方ご教授頂けないでしょうか?
発生している問題・エラーメッセージ
ボタンをクリックしたらコンソールログに作成中のシステムのトップページのHTMLが表示される。
該当のソースコード
JavaScriput
1$('button[id=button_a]').on('click', function() { 2 DB_action(); 3 }); 4 5 var DB_action = function(){ 6 7 var left_list = document.getElementById('left_list'); 8 var move_users_opsion = $(left_list).children(); 9 var move_users = []; 10 11 var max = move_users_opsion.length; 12 for (var i = 0 ; i < max; i++){ 13 move_users[i] = move_users_opsion[i].value ; 14 } 15 16 $.ajax({ 17 type : 'POST', 18 url : ajaxurl, 19 dataType : 'text', 20 data : { 21 'action' : 'ajax_test', 22 users_ID : [move_users], 23 } 24 }).done(function(data, textStatus, xhr){ 25 console.log(data); 26 console.log(textStatus); 27 console.log(xhr); 28 alert('更新に成功しました。'); 29 }).fail(function(xhr, textStatus, errorThrown){ 30 alert('更新に失敗しました。'); 31 console.log (xhr); 32 console.log (textStatus); 33 console.log (errorThrown); 34 }); 35 };
functions.php
1function add_my_ajaxurl() { 2?> 3 <script> 4 var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>'; 5 </script> 6<?php 7} 8add_action( 'wp_head', 'add_my_ajaxurl', 1 ); 9 10function ajax_test() { 11 $move_users = ($_POST['users_ID']); 12 print ($move_users); 13 exit(); 14} 15add_action('wp_ajax_ajax_test','ajax_test'); 16add_action('wp_ajax_nopriv_ajax_test','ajax_test'); 17
試したこと
まず変数で試して、最初⓵のようにしていたらHTMLが表示されるようになり、⓶のように、したらうまくいったので、変数を配列に変更としたらまたHTMLが表示されるようになりました。その後また⓶の変数に戻したらまたHTMLが表示されるようになりました
⓵
success: function( response ){
alert( response );
}
⓶
.done(function(data, textStatus, xhr){
console.log(data);
}
出たり出なかったりなので上記に記載したファイル以外のWPファイルが問題ではないかとも思ってもいますが......
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/10 05:19
2020/01/10 05:39