我在函数中有以下代码。php
<script type="text/javascript">
var post_id = "1055"; // hardcoded post id for testing purposes
var type = "some_type";
var data = {action: "get_variations", parent_id: post_id, item_type: type};
jQuery.post("/wp-admin/admin-ajax.php", data, function(response){
alert(response);
});
</script>
<?php
function get_variations($parent_id, $item_type){
// etc..
}
add_action(\'wp_ajax_get_variations\', \'get_variations\', 10, 2);
?>
当ajax尝试调用get\\u变体时,我总是得到:
警告:get\\u variations()缺少参数2
我做错了什么?
SO网友:simonthesorcerer
Ajax调用使用$_POST
-变量将其参数提交给函数。像$_POST[\'action\']
总是由Wordpress Ajax调用使用(显然,包含操作的名称;),PHP只抱怨缺少第2个参数。
您可以使用Bainternet提供的解决方案。如果您想在ajax和“纯”PHP上下文中使用您的函数,可以这样做:
<?php
function get_variations($parent_id = false, $item_type = false){
if(isset($_POST[\'parent_id\'])) {
$parent_id = $_POST[\'parent_id\'];
$item_type = $_POST[\'item_type\'];
}
// etc..
}
这样,PHP将始终假定给定的两个参数,您也可以使用此函数
$_POST
.