我有一个值数组,我已经转换为JSON,所以我可以插入一个属性(不知道其他任何方式):
<div data-categories="[[{"id":"4123","name":"Sushi Restaurant","pluralName":"Sushi Restaurants","shortName":"Sushi"}]]">
</div>
然而,它变成了什么,可能有更多的值而不是这个简单的JSON
[
[
{"id":"4123","name":"Sushi Restaurant","pluralName":"Sushi Restaurants","shortName":"Sushi"},
{"id":"5555","name":"More","pluralName":"More","shortName":"More"}
]
]
如上所述。
现在我无法将带有ajax的JSON传递给另一个文件。
var cats = $('div').data('categories');
alert(cats); // this alerts object object
var categories = "cats="+cats;
$.ajax({ //json data for categories
url: 'saving.php',
type: 'post',
dataType: 'json',
data: categories
}).done(function(data){
alert(data); //this does not get alerted
});
我想对这些数据做什么是将它传递给mysql,所以我想最终json_decode它所以我可以使用某些数据
if(isset($_POST['cats'])){
// It doesnt' even pass through here?
}
答案 0 :(得分:1)
试试这个:
var cats = $('div').data('categories');
alert(cats); // this alerts object object
$.ajax({ //json data for categories
url: 'saving.php',
type: 'post',
dataType: 'json',
data: {
cats : cats
},
}).done(function(data){
alert(data); //this does not get alerted
});
答案 1 :(得分:1)
使用单引号而不是双引号:
<div data-categories='[[{"id":"4123","name":"Sushi Restaurant","pluralName":"Sushi Restaurants","shortName":"Sushi"}]]'>
</div>
此外,您无法将对象与字符串连接,值变为:
"cats=[object Object]"
由于您使用的是POST方法,因此您应编写代码:
data: {
cats: cats
}
答案 2 :(得分:0)
如果没有收到警报,则无法返回任何内容。这可能是因为服务器错误。您可能希望在浏览器上打开控制台,看看AJAX调用是否有任何问题