Wordpress Ajax Callback

时间:2016-09-17 作者:otinane

我需要你的帮助,因为我是Ajax和Wordpress的新手。这是一个简单的插件,我想知道我做错了什么,结果是“零”

AJAXphp

    add_shortcode( \'ajax_shortcode\', \'ajax_shortcode_function\' );

  function ajax_shortcode_function() {
  wp_enqueue_script(\'jquery\');
  wp_register_script (\'ajax_script\', plugins_url( \'/ajax.js\', __FILE__ ), plugins_url( \'/ajax.js\', __FILE__ ), array(\'jquery\'));
  wp_enqueue_script ( \'ajax_script\' );
  wp_localize_script ( \'ajax_script\', \'ajax\', array( \'ajax_url\' => admin_url( \'admin-ajax.php\' )));


  function my_submit_process() {
    global $wpdb;
    $text1 = $_POST[\'text1\'];
    $text2 = $_POST[\'text2\'];

    echo $text1 + $text2;
    wp_die();
echo \'sfdasdfsdfsdfas\';
echo $text1 + $text2;
  }

  add_action(\'wp_ajax_submit_process\', \'my_submit_process\');
  add_action(\'wp_ajax_nopriv_submit_process\', \'my_submit_process\');
?>
<input type="text" id="text1"> +
<input type="text" id="text2">
<button id="button"> = </button>
<div id="result"></div>
<?php
}
ajax。js公司

jQuery(document).ready(function($){

$(\'#button\').click(function(e) {
    var val1 = $(\'#text1\').val();
    var val2 = $(\'#text2\').val();
    $.ajax({
        type: \'POST\',
        url: ajax.ajax_url,
        data: { action: \'submit_process\', text1: val1, text2: val2 },
        success: function(response) {

            $(\'#result\').html(response);
        }
    });
    return false;
});
});

3 个回复
SO网友:scott

我觉得奇怪的是ajax_shortcode_function() 注册ajax脚本并将其排队。根据codex, 您应该在函数中注册/排队。php。此外,如果您只需要ajax管理员的url。php,教程说您可以使用全局ajaxurl 变量,因此不需要本地化脚本。

另一件看起来很奇怪的事是my_submit_process() 似乎位于ajax_shortcode_function(). 我会检查右括号是否在正确的位置,如果不在,请重试。

SO网友:sdexp

我看到您正在使用wp\\u die()。我会在方法的末尾放一个die(),而不是像这样在中间放一个wp\\u die()。我不知道这是否会有所不同。

SO网友:otinane

我刚刚在wp_register_script 我有

plugins_url( \'/ajax.js\', __FILE__ )
两次。我把它拿走了0 再次显示结果