下面我给出了我的代码,它是一个调用 php 文件并获取 json 数据的 javascript 函数......一切都很完美,但是当我想将数据添加到多维数组时我遇到了问题......抱歉对于这个菜鸟问题..我不知道它是否可以完成。
我想做什么
- 我想在 ajax 调用中检索数据并将此数据保存到数组中
- 所以如果我再次需要数据,我不需要再打电话
- 所以我想将数据存储在具有两个键的多维数组中
- 第一个键是iof数组的长度
- 第二个是我的数据的数据类型,可以是“name”、“id”、“description”
- 这样做正确吗
- 如果不是那么我应该尝试什么...?帮帮我……!!!
- 或者我可以将从 ajax 调用成功获得的完整 jsondata 对象数据分配给数组
我的问题新增要求 它的关联数组就像我的 php 数据数组一样
$data[0]["id"] = 1;
$data[0]["name"] = "spomething";
$data[0]["descriptoon"] = "spomething";
$data[0]["image"] = "spomething";
//for second item
$data[1]["id"] = 1;
$data[1]["name"] = "spomething";
$data[1]["descriptoon"] = "spomething";
$data[1]["image"] = "spomething";
所以我想为 javascript 创建相同的数组...对于我从 ajax 获取的每个项目.../并包含到 javascript 数组中...
$('.searchButton').bind("mouseover", function() {
var data = $(this).parents('.item').attr('id');
var type = $(this).parents('.tab-pane').attr('id');
// dataArray will be global javascript variable because of its needdss... it will be outside the function
var dataArray = new Array();
$.ajax({
type: 'GET',
url: '<?php echo $this->createUrl("dining/AjaxItemDetailsCall") ?>/data/'+data,
dataType: 'json',
async: false,
success: function(data){
var dataArrayLength = dataArray.length;
dataArray.push({dataArrayLength:data});
console.log(dataArray[0]);
}
});
});
现在我根据您的建议更改我的代码,我可以通过 push fn 将数据对象推送到数组中......现在我如何调用该对象的内部数据......!
Object {dataArrayLength: Object}
dataArrayLength: Object
description: "World famous roasted Chicken, avacado, fresh mushrooms, red onions. Mozzarella cheese and our secret sauce."
id: "11"
images: "/htdocs/kiosk/images/dining/items/pizzas/11.jpg"
name: "Bella Notte Signature Pizza"
price: "4.50"
raters: "10"
ratings: "1"
__proto__: Object
__proto__: Object
这是 console.log(dataArray[0]) 的输出...所以现在我想从中获取“id”、“name”、“description” 我该怎么做这……????/
我的问题解决方案
success:function(data){
var dataArrayLength = dataArray.length;
dataArray.push(data);
dataArray.forEach(function(object,index){
console.log(object.id);
console.log(object.name);
console.log(object.description);
console.log(object.image);
console.log(object.ratings);
});
这就是我想做的......
最佳答案
试试这个:
$.ajax({
type:'GET',
url:'<?php echo $this->createUrl("dining/AjaxItemDetailsCall") ?>/data/'+data,
dataType: 'json',
async: false,
success:function(data){
dataArray = []; // empty it before pushing data into it...
dataArray.push(data);
}
});
我相信你可以直接将数据对象压入dataArray。 当您访问这个简单的访问时,它像 dataArray[i].id、dataArray[i].name 等等,用于数据的所有键。
关于javascript - 将对象分配给javascript多维数组中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20545905/