在WP中执行AJAX成功的javascript函数

时间:2017-11-21 01:08:43

标签: javascript ajax wordpress

我的Wordpress中有一个功能可以重新生成Google Map。 我想要实现的是从我的WP获取一些标记,然后将它们添加到DIV并再次从它们生成地图。

使用带有魔术名称的简单函数重新生成I" regenerate_map()" :)。

jQuery(".gmaps-button").click(function(){
    jQuery.ajax({
        type: "POST",
        //contentType: "application/json; charset=utf-8",
        dataType: "text",
        url: myAjax.ajaxurl,
        data : {action: "jv_get_map_data", ids : 1},
        //data: dataString,
        action: 'jv_get_map_data',
        beforeSend:  function() {
            //jQuery('#contact-form #err2').html('').hide();
            //jQuery(".submit").html("proszę czekać").addClass('loading');


        },
        success: function(text) {
            jQuery('#gmaps-markers').html(text);
            console.log(text);
            regenerate_map();
        } 



    });

    return false;

});

主要问题是函数regenerate_map()不起作用。 我得到" ReferenceError:没有定义regenerate_map"。 这不是真的,因为,我有其他按钮,它是click()的触发器,它也使用此功能,它可以工作。

我认为在AJAX请求中执行其他函数有问题,但是console.log和alert()可以正常工作。

我认为这个问题可能与我得到的问题一致" text"但我已经检查过,即使我什么都没得到,也存在问题。

也许有些安全问题?

有人可以告诉我为什么以及如何做到我需要的东西?

1 个答案:

答案 0 :(得分:0)

你的regenerate_map()功能应该是这样的。

<script>
        jQuery(document).ready(function() {
           jQuery("#p_button").click ( function () {
           console.log("button got clicked");
           var donor_data= [ "12","13","14" ];
           var damount = 1234;
           var donor_obj = {
               id : donor_data,
               amnt : damount,
           };
           jQuery.ajax({
               type:"POST",
               //dataType : "json",
               url: "<?php echo  admin_url( 'admin-ajax.php' );?>",
               data: { action : "ajx_add_donations",
                  'donors' :  JSON.stringify(donor_obj),
                 },
               success:function(response){
                   console.log("success " ,response);
                   //console.log("success " + JSON.parse(response));
                   //jQuery("#d_amount").val(donor_data[0]);
                   //jQuery("#p_button").text("brrr");
                    regenerate_map();
                },
               error: function(response) {
                   console.log("error" + response);
                  },
               });
               });
        });

        function  regenerate_map(){
            alert("test");
        }
</script>