如何在插件文件中调用AJAX

时间:2014-07-19 作者:Sanjay Nakate

我对使用wordpress的ajax非常陌生。在这里,我得到了一个选定的选项值var test 当我提醒它显示正确的值时,使用bellow函数。

var test 我必须使用ajax发送的值,我希望在PHP变量中获得该值。

所以我需要调用ajax并获取脚本变量值var test 在php插件文件中,我有bellow函数和select box。

JQuery功能。

jQuery("#time_slot").change(function()
{

var test= time_slot.value;
alert(test);

});
“选择”框

<select name="time_slot" id="time_slot" class="time_slot">
<option value="">Choose a Time</option>
<option value="1:00 - 3:00">01:00 AM-03:00 AM</option>
<option value="3:00 - 5:00">03:00 AM-05:00 AM</option>
</select>

5 个回复
最合适的回答,由SO网友:Sanjay Nakate 整理而成

我用下面的代码调用了ajax,它工作得很好。我在这里发送variable time 使用post访问此页面$.post("\'. plugins_url().\'/woocommerce-booking/gettime.php",

var time=0;
jQuery("#time_slot").change(function()
                                {   
                                time=time_slot.value;
                            $.post("\'. plugins_url().\'/woocommerce-booking/gettime.php",
                                 {name: time},
                                  function(response){
                                  console.log(response);
                                  }
                                );  
                                 });
我的gettime。php文件将看起来像bellow,并从我的ajax调用中得到响应。

<?php session_start();
    echo $name= $_POST["name"];
    file_put_contents("name.txt", $name)

 ?>

SO网友:TBI Infotech

使用内置的wordpress Ajax操作:

jquery如下所示:

$(\'#ajax_form\').bind(\'submit\', function() {
    var form = $(\'#ajax_form\');
    var data = form.serialize();
    data.action = \'MyPlugin_GetVars\'
    $.post(\'/wp-admin/admin-ajax.php\', data, function(response) {
        alert(response);           
    });
return false; 
您的插件代码如下:

add_action("wp_ajax_MyPlugin_GetVars", "MyPlugin_GetVars");
add_action("wp_ajax_nopriv_MyPlugin_GetVars", "MyPlugin_GetVars");

function MyPlugin_GetVars(){
    global $wpdb;
    // use $wpdb to do your inserting

    //Do your ajax stuff here
    // You could do include(\'/wp-content/plugins/test/getvars.php\') but you should
    // just avoid that and move the code into this function
}
欲了解更多信息,请访问AJAX in Plugins

SO网友:Jigar Gorakhiya

请看下面,它可能会对你有所帮助。这是你的PHP 密码

<?php

function ajax_enqueuescripts() {
    wp_enqueue_script(\'ajaxloadpost\', plugins_url().\'/your-plugin-name/js/my-ajax.js\', array(\'jquery\'));
    wp_localize_script( \'ajaxloadpost\', \'ajax_postajax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) );
}

add_action(\'wp_enqueue_scripts\', ajax_enqueuescripts);

add_action(\'wp_ajax_nopriv_ajax_ajaxhandler\', \'my_action_callback\' );
add_action(\'wp_ajax_ajax_ajaxhandler\', \'my_action_callback\' );

function my_action_callback(){  
    print_r($_GET);
    die;
}
这是您的JS代码。您需要创建新的JS文件,并将下面的代码放入新的JS文件中。

jQuery(document).ready(function(){
 jQuery("#time_slot").change(function()
{

    var test= time_slot.value;

jQuery.ajax({
        type: \'GET\',
        url: ajax_postajax.ajaxurl,
        data: {
            action: \'ajax_ajaxhandler\',
            test : test   
        },
        success: function(data) {
            alert(data);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert("Error");
        }
    });

    return false;
  });
});
有关更多详细信息,请查看here

SO网友:Riteshdjoshi

将此添加到插件php页面

 add_action("wp_ajax_ajax_plugin_call", "ajax_plugin_call_callback"); 
 add_action("wp_ajax_nopriv_ajax_plugin_call", "ajax_plugin_call_callback");
Php页面中的Ajax函数

function ajax_plugin_call_callback{
   global $wpdb;
   print_r($_POST) ; 
   // write your Php Code
   die;

}
您的Javascript代码如下

jQuery(document).ready(function(){
  jQuery(\'#formID\').bind(\'submit\', function() { // Form submit Button
      var form_value =  jQuery(\'#formID\'); 
      var form_data = form_value.serialize(); //Serialize the Form 
      form_data[\'action\']=\'ajax_plugin_call\'; // Action 
     jQuery.post(\'<?php  echo admin_url(\'admin-ajax.php\'); ?>\',form_data,function(response){

         // Here is the Ajax Response

       });
    }
 }); 
请检查此项,它将在WordPress Ajax调用插件中为您提供帮助。

SO网友:Brandon J Brotsky

您必须首先将脚本排队并定义URL。然后,您必须为AJAX回调创建一个函数,并添加一个调用该函数的WordPress操作。这是一段视频,我在其中进行了解释,希望能有所帮助。:)

https://www.youtube.com/watch?v=R7OK-TtNuEc

结束

相关推荐

如何使用AJAX和WordPress?

我正在开发我的第一个插件。我想为帖子添加一个关注按钮,这样登录的用户就可以关注作者了。我将以下几行放入函数中。phpfunction add_query_vars_filter( $vars ){ $vars[] = \"userID\"; return $vars; } add_filter( \'query_vars\', \'add_query_vars_filter\' ); // The code to displ