javascript - 如何将此字符串转换为数组?
问题描述
我正在尝试将我在 JS 中创建的这个数组转换为然后在我的控制器中使用以在 foreach 中使用并使用数组的数据。我正在使用框架codeigniter。
在这里,我在我的 JS 文件中创建数组。
function get_array(){
var datos = []; // Array
$("#tbl_esctructura tbody > tr").each(function() {
var item = $(this).find('td:eq(1)').text();
var cantidad = $(this).find('td:eq(4)').text();
datos.push({
"item": item,
"cantidad": cantidad
});
});
datos = JSON.stringify(datos);
$.ajax({
data: {
'datos': datos
},
url: "<?php echo base_url() ?>Controller/data_from_array",
type: 'POST',
dataType : "json",
success: function(response) {
}
});
}
我发送给控制器的数据如下所示。
[{"item":"1","cantidad":"2"},{"item":"2","cantidad":"4"}]
现在我的控制器 PHP
public function data_from_array(){
$data = $this->input->post('datos', TRUE);
$items = explode(',', $data);
var_dump($items);
foreach ($items as $row) {
echo $row->item.'<br>';
}
}
这var_dump($items)
就是结果
array(2) { [0]=> string(12) "[{"item":"1"" [1]=> string(16) ""cantidad":"1"}]" }
}
在这个回声中,我得到了这个错误Message: Trying to get property 'item' of non-object
而且我不知道我做错了什么
解决方案
看起来像一个标准的 JSON。请务必将 true 添加到 json_decode 函数(第二个参数)以返回数组而不是对象。
$result = json_decode($data, true);
看看 JSON,因为这是当今 Web 和移动应用程序的数据交换标准,并了解有关该功能的更多信息:
https://www.php.net/manual/en/function.json-decode.php
另请查看将您的数组编码为 JSON 格式的对应项:
推荐阅读
- java - 使用 Logstash 索引从 Cassandra 到 Solr 的项目
- php - 为什么邮件程序在 php 中不起作用,我在哪里弄错了?
- javascript - 在确认弹出窗口(Node、Express、Jade)中单击 Ok 时如何发出 POST 请求而不是 GET
- python-3.x - 如何处理 ValueError:Julian Day 必须是正数
- python - Pyramid 覆盖默认请求日志以添加新参数
- javascript - 让一个 div 出现,然后保持刷新 Javascript
- angular - ** ionic build --prod ** 在我为生产而构建时不起作用
- python - pygame,如何使用 sprite.Group.draw() 绘制所有精灵?
- json - 如何更改我的 google JSON Search API 中的查询?
- c - 将 strlen() 与数组整数或浮点数一起使用