这应该是一个相当简单的电话,但我似乎无法使其发挥作用。基本上,我正在尝试将一组搜索参数传递给PHP脚本,但$ _POST即将出现空白。调用(通过jQuery)......
self.search = function () {
var data = {
'year': 2013,
'month': 10,
'day': 1
};
$.ajax({
dataType: 'json',
type: 'POST',
url: 'repositories/blogposts.php',
data: { 'search': data },
success: function(results) {
// populate knockout vm with results...
}
});
};
PHP代码等待传入的json对象......
if (isset($_POST['search'])) {
echo find_blogposts(json_decode($_POST['search']));
}
我尝试了很多方法,但无论如何,print_r($_POST)
给了我一个空数组。有什么遗漏?
答案 0 :(得分:3)
PHP可能会阻塞您要发送的对象。
您应该直接发送数据对象:
data: data,
(在php中获取$_POST['year']
等)
或将对象转换为可以在php端解码的json字符串:
data: { 'search': JSON.stringify(data) },
答案 1 :(得分:0)
find_blogposts()
内发生了什么?
另外,您可以尝试.post()
。
$.post( "repositories/blogposts.php", { year: "2013", month:"10", day:"1" }, function( data ){
// do something here
});
在你的php中,只收到$_POST['year']
,这将是2013年。
希望它有所帮助。