2このリストの値を移動させてその値をPOSTで自作のphpに渡したいです。
ajaxのコーディングですが、下記の様に作成しましたがうまく起動しません。
何処が間違っているか教えていただけないでしょうか。
やりたい事はある2このリストの値を移動させてその値をPOSTで自作のphpに渡したいです。
発生している問題・エラーメッセージ
値のPOSTが上手く出来ていないみたいでphpファイル側で$_POSTした値が未定義とエラーが出ました。
該当のソースコード
functions.php
1 2function add_my_ajaxurl() { 3?> 4<script> 5var ajaxurl = ‘<?php echo admin_url( ‘admin-ajax.php’); ?>’; 6</script> 7<?php 8} 9add_action( 'wp_head', 'add_my_ajaxurl', 1 ); 10 11function ajax_move_users() { 12 13 $post = $_POST['users_ID'][0]; 14 echo $post; 15 16 die(); 17} 18add_action('wp_ajax_ajax_test','ajax_move_users'); 19add_action('wp_ajax_nopriv_ajax_test','ajax_move_users'); 20 21?> 22?>
JavaScriputt
1 2// var count_log_filename_js ='count_log_js.txt'; 3// var flag=''; 4// var user_id=''; 5 6$(document).ready(function() { 7 8 9 $('button[id=insert_button]').on('click', function() { 10 // flag = 'insert'; 11 move('right_list', 'left_list'); 12 }); 13 14 $('button[id=delete_button]').on('click', function() { 15 // flag = 'delete'; 16 move('left_list', 'right_list'); 17 }); 18 19 var move = function(_this, target) { 20 $('select[id=' + _this + '] option:selected').each(function() { 21 $('select[id=' + target + ']').append($(this).clone()); 22 $(this).remove(); 23 24 25 }); 26 27 }; 28 29 30 $('button[id=button_a]').on('click', function() { 31 DB_action(); 32 }); 33 34 var DB_action = function(){ 35 36 var left_list = document.getElementById('left_list'); 37 var move_users_opsion = $(left_list).children(); 38 var move_users = []; 39 40 var max = move_users_opsion.length; 41 for (var i = 0 ; i<max;i++){ 42 move_users[i]=move_users_opsion[i].value ; 43 } 44 45 46 var post = 'POST'; 47 var postData = { 48 'action': 'ajax_move_users', 49 //action: TOURAJAX_AJAX.action, 50 //nonce: TOURAJAX_AJAX.nonce, 51 users_ID: [move_users] 52 //'array_test[]': move_user 53 }; 54 55 //Ajaxで送信 56 $.ajax({ 57 url: ajaxurl, 58 type: post, 59 dataType: 'text', 60 data : postData 61 }).done(function (res) { 62 /*var result_html = "<select>"; //表示用HTML 63 for (date in res){ //配列ループ 64 result_html = result_html +'<option id=' + date + 'name= ' + date '>' + 'aaaaa' + '</option>'; 65 } 66 result_html = result_html + "</select>"; 67 68 var element = document.getElementById('left_list'); //結果を表示する場所 69 element.innerHTML = result_html; //結果表示*/ 70 console.log('送信が成功しました。'); 71 console.log(postData); 72 }).fail(function (xhr, textStatus, errorThrown) { 73 alert('エラーが発生しました。'); 74 }); 75 76 }; 77 78});
php
1$move_user = $_POST['users_ID'][0]; 2global $wpdb; 3$wpdb->delete( $wpdb->test_master , 4 array( 5 'posts_ID' => $_SESSION['toukou_id'] 6 ) , 7 array( 8 '%d' 9 )); 10 11for ($i=0; $i < count($move_user); $i++) { 12 13 global $wpdb; 14 $wpdb->insert( $wpdb->test_master , 15 array( 16 'posts_ID' => $_SESSION['toukou_id'], 17 'users_ID' => $muve_user[$i] 18 ), 19 array( 20 '%d', 21 '%d' 22 )); 23 24} 25 26//if (count($move_user)!==0){ 27 print "<script>alert('更新に成功しました。');</script>"; 28//} 29 30
試したこと
データの送信は確認できました。
が取得が上手く出来てないのかphpの変数が空の状態です。
回答2件
あなたの回答
tips
プレビュー