我有一个front-page.php模板,其中列出了5个最新帖子以及其间的一些自定义帖子类型。当点击底部的更多按钮时,需要ajax加载更多帖子。
所以我根据this tutorial创建了一个loop-home.php文件 默认情况下,我无法使用此代码,因为我在主页的第一次加载时有一个嵌套循环,这个脚本会混淆它。
所以我只向ajax OLDER帖子写了一个新查询。当页面加载并将其存储在数组中时,我收集了已经存在的帖子的帖子ID。
我现在需要在loop-home.php的查询中使用这个数组 我正在使用此方法,因为offset不适用于分页,我需要将这些ID传递给查询中的post__not_in参数。
方法1: 我试过(在loop-home.php中)
$exempt = $_REQUEST['exemptArray'];
但它返回NULL。
方法2:(使用Ajax)
我试过(在front-page.php中) -
<script>
var exemptArray = '<?php echo json_encode($exemptions); ?>';
</script>
然后我去了script.js并添加了 - //从var array
创建json对象var jsonArray = JSON.stringify(exemptArray);
var dataToPost = { 'jsonArray':jsonArray };
//send POST data to PHP and handle response
$.ajax({
type: 'POST',
url: loopHome, //stored path in variable. working.
data: dataToPost,
success: function (data) {
console.log('I have already sent it.'); //I am getting this log. Working.
}
});
然后在loop-home.php中 -
$exempt = json_decode($_POST['jsonArray']);
在var_dump($ exempt)
上仍然为NULL我做错了什么?
答案 0 :(得分:0)
试试这个
你JS:
$.ajax({
type:'POST',
url:'foo.php',
data:{myArr:exemptArray},
dataType:'JSON',
success:function(result){
console.log(result);
},
error:function(data){
console.log(JSON.stringify(result));
}
});
您的php页面:
$input=$_POST['myArr'];
$exempt=json_encode($input);
在您的控制台中,您将获得一个阵列。 [object object]是对关联数组的引用。所以在上面的代码结果与exemptArray相同。尝试这样的事情就可以了。我无法在任何地方找到你的数组,所以我用exemtarray本身。