jQuery没有点击Wordpress上的Ajax URL

时间:2015-08-17 07:37:21

标签: javascript php jquery ajax wordpress

我正在尝试在wordpress上实现一个民意调查插件。 jQuery onchange事件在下面的脚本中运行得非常好,但是不会在网络上调用或显示ajax命中。

插件索引页面 PHP:

 function my_scripts_main() {
        wp_enqueue_script(
            'my_voter_script',
            plugins_url( '/js/main.js' , __FILE__ ),
            array( 'jquery' )
        );
        wp_localize_script( 'my_voter_script', 
            'myAjax',
             array( 'ajaxurl' => admin_url( 'admin-ajax.php' ),
                'action'=>'my_poll_srt')
        );        
    }

    add_action( 'wp_enqueue_scripts', 'my_scripts_main' );

插件短代码页

add_action( 'wp_ajax_nopriv_my_poll_srt', 'my_poll_srt_callbck' );
add_action( 'wp_ajax_my_poll_srt', 'my_poll_srt_callbck' );


function my_poll_srt_callbck() {
    global $wpdb;
    $poll_id=$_POST['poll_id'];
    $answer=$_POST['answer'];
    $d=mktime(11, 14, 54, 8, 12, 2014);
    $created= date("Y-m-d h:i:sa", $d);

    /******* My Logic ****************/


    echo json_encode(array('YES'=>$count_yes,
            'NO'=>$count_no));
     wp_die();
}

JS脚本:

jQuery(document).ready(function(){
                            jQuery("input[name=answer_srt]:radio").change(function (e) {
                                e.preventDefault();
                             //   submit();
                               //  $(this).closest("form").submit(function() {
                                   // alert('Hello');
                                    var poll_answer=$(this).val();
                                    var poll_id=jQuery(this).closest("form").find('#poll_id_srt').val();
                                    var vi=jQuery(this);



                                 jQuery.ajax({
                                    url: myAjax.ajaxurl,
                                    type: 'POST',
                                    data: {
                                        action: myAjax.action,
                                        answer:poll_answer,
                                        poll_id:poll_id
                                    },
                                   // dataType: 'html',
                                    success: function(response) {
                                        var obj = JSON.parse(response);
                                     //   console.log(obj);
                                        jQuery(vi).closest('form').find('#poll_sht').html('YES='+obj.YES+'   NO='+obj.NO);

                                    }
                              //  });

                                 });
                            }); 
                         });

在上面的代码中,控制台面板中没有错误。

如果我将alert()放在脚本中,它的工作正常,但它没有命中admin-ajax.php文件。现在做什么 ?我错在哪里请帮助我?As you can see no ajax call but alert is working fine on change event

1 个答案:

答案 0 :(得分:0)

您的操作网址应包含查询操作字符串。 例如 操作URL就是这样的 http://localhost/wordpress/wp-admin/admin-ajax.php?action=my_poll_srt