[英]Undefined index in Wordpress plugin when call AJAX
我為Wordpress創建了插件,現在嘗試在plugin中學習Ajax 。
當我調用函數時:
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
}
和函數回調
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
}
是什么導致此錯誤,我該如何解決?
當您向wp-admin/admin-ajax.php?action=my_action
發出請求時,它僅包含action
查詢字符串參數,而不包括WordPress中的回調函數期望的whatever
參數。
如果您希望它在地址欄中的瀏覽器測試中起作用,請將$_POST['whatever']
替換$_POST['whatever']
$_REQUEST['whatever']
,然后在瀏覽器中使用它wp-admin/admin-ajax.php?action=my_action&whatever=1234
-這將通過whatever
一個GET
,而在你的Ajax這是一個POST
,但$_REQUEST
會看到兩者。
也就是說,您的示例代碼是正確的-我什至在本地安裝上對其進行了測試。 當您的JavaScript執行時,這兩個參數都將作為data
對象的一部分包含在內,然后可以在ajax處理程序中進行處理。 只要將您的網站加載到瀏覽器中,代碼就會發出警報,除非您遇到其他JavaScript錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.