旧行李 2017-11-23 12:32 采纳率: 25%
浏览 39

Wordpress Ajax无法正常工作?

I am developing plugin in wordpress, i used select tag element, i need the value to be stored in the database on change the option values , but it seems ajax is not working .below is my code ,

this is script code

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

 
    } 
<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";
        
    }
   
}
?>

</div>
  • 写回答

1条回答 默认 最新

  • weixin_33721344 2017-11-23 13:16
    关注

    Your use of jQuery.ajax seems wrong. Try without wrapping the code with jQuery.ajax like this:

    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";            
            }       
        }
    ?>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛