通过 ajax 发送带有字母数字索引名称的数组
Sending arrays with alphanumeric indexes names through ajax
我正在尝试通过jquery ajax调用传递数组。但是,我需要在其上使用描述性索引,例如。项目["SKU"] = 'ABC';
如果我创建一个以下数组:
item[1] = "abc";
item[2] = "def";
并将其传递给下面的 ajax 调用,我在 php 端得到一个正确的数组
$.ajax({
type: "POST",
url: "/ajax/add_to_cart.php",
data: {items: item},
success: function(msg){ }
});
但是,创建这样的数组
item["sku"] = "abc";
item["title"] = "product";
在 PHP 端不产生任何内容
有没有技巧可以推动这样的阵列?我尝试过使用jquery stringify,但这没有帮助
另外,我需要在类似的事情中传递二维数组。这可能吗?
我假设您正在使用 [] 文字或新 Array() 创建一个 Array 实例。 您正在寻找的数据结构在 JavaScript 中称为对象,它们也可以在其他环境中称为关联数组、哈希映射或字典。 要在 JavaScript 中创建和填充对象,您可以执行以下操作:
var item = {};
item["sku"] = "abc";
item["title"] = "product";
您可以构建并发送收集的商品数据,如下所示:
var item = [{sku:"abc", title:"product1"}, {sku:"def", title:"product2"}, {sku:"ghi", title:"product3"}];
$.ajax({
type: "POST",
url: "/ajax/add_to_cart.php",
data: {items: JSON.stringify(item)},
dataType: "json",
success: function(msg){ }
});
json_decode() 将在 PHP 端为您提供帮助:
<?php
var_dump(json_decode($_REQUEST['items'], true));
?>
你需要仔细看看PHP的json_encode()
和json_decode()
函数:http://php.net/manual/en/function.json-decode.php(实际上整个库都会有所帮助)以及jQuery的$.getJSON()
和$.post()
函数:http://api.jquery.com/jQuery.post/
<?php
$items_array = json_decode( $_REQUEST['items'], true );
foreach ( $items_array as $key=>$value ){
// $key = 'sku', 'title', etc.
// $value = 'abc', 'product', etc.
// $value might include array( 'key'=>'value', 'key'=>'value' ) when multidimensional
}
相关文章:
- 测试索引值是否等于某个数字的倍数
- Angular js+ng repeat+字母数字索引不起作用
- 如果数字已插入排序数组,则获取该数字的索引
- for.in循环在非数字索引“clean”和“remove”上循环
- Javascript中的非数字索引多维数组
- 查找字符串及其索引中的最大数字
- 给定一个带有数字的数组,我如何编写一个递归函数,当 2 个元素加起来为一个目标时,它会在数组中查找索引
- 在数字索引循环中获取数组项的键
- Javascript:我可以根据提示输入在数组中找到数字的索引吗
- 在数字索引处放置行 - SQL
- 将数字存储在数组中会混淆如何根据值而不是索引来操作这些项目
- 检测数组中接近且具有相同索引值的数字
- 通过 ajax 发送带有字母数字索引名称的数组
- 我知道如何获取 z 索引,但是有没有办法在页面上获取绝对 Z(数字,而不是 AUTO)
- 使用序号重命名文件 - 从文件夹中的最高数字开始索引
- 在数组中添加和减去数字索引值的类型转换
- 通过数字索引创建数组而不推入数组
- 非数字索引数组的长度
- 如何确定我的数字最接近哪个数组索引
- 使用javascript从数组中筛选出数字索引