2017-11-23 10 views
-1

私はwordpressでプラグインを開発しています。selectタグ要素を使用しました。オプション値を変更する際にデータベースに格納する値が必要ですが、ajaxが機能していないようです。スクリプトコード Wordpress Ajaxは機能しませんか?

function ajaxFunction(str,id) { 
 
    var payment_selected = str; 
 
\t var id=id; 
 
\t var queryString = "&id_took=" + id + "&sel=" + payment_selected; 
 
    
 
    jQuery.ajax({ 
 
     var data = { 'action' : 'my_action', 
 
         'queryString':queryString 
 
      }; 
 
     jQuery.post(ajaxurl, data, function(response) { 
 
\t \t \t alert('Got this from the server: ' + response); 
 
\t \t }); 
 
    }); 
 

 
    
 
    }
<select name='payment_select' id="payment_select" onchange="ajaxFunction(this.value,<?php echo $row->id ?>)"> 
 
          <option value="Payment Due">Payment Due</option> 
 
         <option value="Payment completed">Payment Completed</option> 
 
         </select>      
 
         
 
    /*below one i have written in my plugin code */ 
 
    <?php 
 
    
 
add_action('wp_ajax_my_action', 'my_action'); 
 

 
function my_action() { 
 
    
 
    global $wpdb; 
 
    $id_selected = $_POST['id_took']; 
 
    $id = $_POST['id']; 
 
    $table_name_payment = $wpdb->prefix . "online_booking_system_model"; 
 
    if($whatever2=="Payment completed") 
 
{ 
 
     
 
$result_pay = $wpdb->query("UPDATE $table_name_payment SET 
 
    payment_status = $id_selected 
 
    WHERE id = $id "); 
 
     echo "success"; 
 
     
 
    } 
 
    
 
} 
 
?>

+0

コンソールで何らかのエラーが発生していますか? –

+0

私は少し変更を加えましたコードを更新してください今すぐお知らせください –

+0

jQuery.ajaxをこのように使用することはできません。その部分を確認してください。 –

答えて

0

jQuery.ajaxのご利用は間違っているようです。このようなjQuery.ajaxでコードをラップせずに試してみてください。

Javascriptを

function ajaxFunction(str,id) { 
    var data = { 
     'action' : 'my_action', 
     'id_took': id, 
     'sel' : str 
    }; 
    jQuery.post(ajaxurl, data, function(response) { 
     alert('Got this from the server: ' + response); 
    }); 
} 

HTML

<select name='payment_select' id="payment_select" onchange="ajaxFunction(this.value,<?php echo $row->id ?>)"> 
    <option value="Payment Due">Payment Due</option> 
    <option value="Payment completed">Payment Completed</option> 
</select>      

PHP

<?php 

    add_action('wp_ajax_my_action', 'my_action'); 

    function my_action() { 

     global $wpdb; 
     $id = $_POST['id_took']; 
     $str = $_POST['sel']; 
     $table_name_payment = $wpdb->prefix . "online_booking_system_model"; 
     if($whatever2=="Payment completed") 
     {    
      $result_pay = $wpdb->query("UPDATE $table_name_payment SET 
      payment_status = $sel 
      WHERE id = $id "); 
      echo "success";    
     }  
    } 
?> 
+0

私は試みましたが、それでも私のデータベースで更新されていません –

+0

ajaxの部分は今動作しますか? –

+0

はい、しかし、その選択の0または1を返すが、データベースで私は、動的 –

関連する問題