我正在尝试将我在JS中创建的这个数组转换为在我的控制器中使用的数组,以便在foreach中使用并使用数组的数据。我正在使用框架代码刻画器。在这里,我在我的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"}]现在我的控制器 PHPpublic 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我不知道我做错了什么
3 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
看起来像一个标准的 JSON。请务必将 true 添加到json_decode函数(第二个参数)以返回数组而不是对象。
$result = json_decode($data, true);
看看JSON,因为这是当今Web和移动应用程序的数据交换标准,并了解有关该功能的更多信息:
https://www.php.net/manual/en/function.json-decode.php
还要看看它的对应物,它将把你的数组编码成JSON格式:
https://www.php.net/manual/en/function.json-encode.php
12345678_0001
TA贡献1802条经验 获得超5个赞
有两种情况:
如果要解析 JSON 对象,则
$items = json_decode($data); // instead of $items = explode(',', $data);
如果要将数据视为字符串,则
echo $row[0].'<br>'; // instead of echo $row->item.'<br>';
白猪掌柜的
TA贡献1893条经验 获得超10个赞
可以将此代码用作分解返回数组,而不是对象。
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>';
}
- 3 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消