所以我使用这个ajax帖子的目的是在wordpress循环中使用一些JS变量,所以我可以根据ajax帖子中的变量调用自定义循环。
以下是ajax电话。
$('.collection-more').click(function() {
$.ajax({
type: 'post',
url: 'http://tmet.dev/wp-content/themes/muban-trust/single-collection.php',
data: { "test" : "hello" },
success: function( data ) {
console.log( data );
}
});
})
目前我正在发送硬编码数据。
在我的single-collection.php页面中:
<?php
print_r($_POST);
if(isset($POST['filters[Artist]']))
{
$filters_obj = $_POST['filters[Artist]'];
$filters_array = json_decode($filters_obj, TRUE);
for($i = 0; $i < sizeof($filters_array); $i++)
{
echo '<p>h'.$obj->name.'</p>';
}
}
?>
我正在使用print_r来调试问题,目前它返回:
阵列()
问题是我无法在single-collection.php中访问名为“test”的Json对象
如何访问它?
提前致谢!
编辑:firebug的屏幕截图答案 0 :(得分:1)
从ajax到php: 这是传统方式
var payload = {
smth1: "name",
smth2: "age"
};
然后调用ajax
$.ajax({
url: "somephp.php",
type: 'POST',
data: payload,
dataType: 'json',
crossDomain: true
})
从phpPost到javascript:
正确获取帖子参数:
$fields = $_POST['fields'];
$usernameGiven = $fields['smth1'];
$passwordGiven = $fields['smth2'];
将smthn返回给javascript时
$result = array(
"something" => "something",
"something2" => $something2
);
echo json_encode($result);
答案 1 :(得分:0)
使用$_POST['test']
访问test
参数。您的print_r()
表示已正确填写。
您的PHP代码正在访问$_POST['filters[Artist]']
,但Javascript中没有此类参数。如果你通过:
data: { 'filters[Artist]': somevalue }
您可以在PHP中以$_POST['filters']['Artist']
访问它。