2016-11-02 6 views
1

すべてのチェックボックスの値をwordpressデータベースに自分で作成したテーブルに挿入しようとしています。WordPressデータベースにチェックボックスの値を挿入する

$(document).ready(function(){ 
    $('#submit').click(function(){ 
     var insert = []; 
     $('.get_value').each(function(){ 
      if($(this).is(":checked") ){ 
       insert.push($(this).val()); 
      } 
     }); 
     insert = insert.toString(); 
     $.ajax({ 
      url:"insert.php", 
      method:"POST", 
      data:{insert:insert}, 
      success:function(data){ 
       $('.result').html(data); 
      } 
     }); 

    }); 
}); 

と私の挿入コード、(そのinsert.php中):ここに私のjQueryのコードです

if (isset($_POST["insert"])){ 
    global $wpdb; 
    $table_name = $wpdb->prefix . "status"; 
    $wpdb->insert($table_name, array(
     'status' => 'approved' 
    ); 
} 

そのがエラーを示していないが、その挿入はないeither.Iが知っていけない場合、この情報は便利ですが、チェックボックスはカスタムポストタイプの一部として管理バックエンドにあります。

答えて

1

あなたのajaxコールでinsert.phpを呼び出しているため、これはうまくいかないでしょう。 urlはajaxurlを指していなければなりません。ajaxurlはajaxがあるスクリプトでローカライズされています。だから、あなたのスクリプトは、ファイルに配置されている場合

custom.jsと呼ばれ、あなたはそれが好きエンキューしている:

wp_enqueue_script('my_custom_script', get_template_directory_uri() . '/js/custom.js', array('jquery'),'', true); 

次にあなたが

wp_localize_script('my_custom_script', 'ajax_call', array(
    'ajaxurl' => admin_url('admin-ajax.php'), 
)); 

のようなあなたのAJAX URLをローカライズそして、あなたにそれを使用しますスクリプトのように

$(document).ready(function(){ 
    $('#submit').click(function(){ 
     var insert = [];   
     $('.get_value').each(function(){ 
      if($(this).is(":checked") ){ 
       insert.push($(this).val()); 
      } 
     }); 
     insert = insert.toString(); 
     $.ajax({ 
      url: ajax_call.ajaxurl, 
      method:"POST", 
      data:{ 
       'action': 'my_action_callback', 
       'insert': insert, 
      }, 
      success:function(data){ 
       $('.result').html(data); 
      } 
     }); 
    }); 
}); 

また、あなたのinsert.phpコードは、 wp_ajaxフック

add_action('wp_ajax_my_action_callback', 'my_action_callback'); 
add_action('wp_ajax_nopriv_my_action_callback', 'my_action_callback'); 

function my_action_callback(){ 
    if (isset($_POST["insert"])){ 
     global $wpdb; 
     $table_name = $wpdb->prefix . "status"; 
     $wpdb->insert($table_name, array(
      'status' => 'approved' 
     ); 
    } 
} 

https://codex.wordpress.org/AJAX_in_Plugins

+1

素晴らしいに夢中!完璧に働いた。ありがとう:D –

+0

喜んで:) –

関連する問題