Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 调用AJAX时Wordpress插件中未定义的索引_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

Php 调用AJAX时Wordpress插件中未定义的索引

Php 调用AJAX时Wordpress插件中未定义的索引,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我为Wordpress创建了插件,现在正在尝试学习 当我调用我的函数时: wp-admin/admin-ajax.php?action=my_action 我得到这个错误: 注意:未定义索引:随便什么 这是我的职责 add_action( 'admin_footer', 'my_action_javascript' ); // Write our JS below here function my_action_javascript() { ?> <script type

我为Wordpress创建了插件,现在正在尝试学习

当我调用我的函数时:

wp-admin/admin-ajax.php?action=my_action
我得到这个错误:

注意:未定义索引:随便什么

这是我的职责

add_action( 'admin_footer', 'my_action_javascript' ); // Write our JS below here

function my_action_javascript() { ?>
    <script type="text/javascript" >
    jQuery(document).ready(function($) {
        var data = {
            'action': 'my_action',
            'whatever': 1234
        };
        // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
        $.post(ajaxurl, data, function(response) {
            alert('Got this from the server: ' + response);
        });
    });
    </script> <?php
}

导致此错误的原因是什么以及如何修复它?

当您向
wp admin/admin ajax.php发出请求时,action=my_action
它只包括
action
查询字符串参数,而不包括WordPress中回调函数所期望的
任何参数

如果希望在浏览器测试中从地址栏执行此操作,请将
$\u POST['which']
替换为
$\u REQUEST['which']
并在浏览器中使用它
wp admin/admin ajax.php?action=my_action&which=1234
-这将把
which
作为
GET
传递,而在ajax中它是
POST
,但
$\u请求
将同时看到这两个


也就是说,您的示例代码是正确的-我甚至在本地安装上对其进行了测试。当您的JavaScript执行时,它将包含这两个参数作为
数据
对象的一部分,然后可以在ajax处理程序中对其进行处理。只需在浏览器中加载您的站点,除非您有其他JavaScript错误,否则代码应该会发出警报。

删除多余的内容,为清晰起见重新编写。
add_action( 'wp_ajax_my_action', 'my_action_callback' );
function my_action_callback() {
    global $wpdb; // this is how you get access to the database
    $whatever = intval( $_POST['whatever'] );
    $whatever += 10;
        echo $whatever;
    wp_die(); // this is required to terminate immediately and return a proper response
}