gpt4 book ai didi

javascript - 为什么我无法访问 JSON 中的数据?

转载 作者:行者123 更新时间:2023-12-03 05:24:27 25 4
gpt4 key购买 nike

我的 PHP 是:

if(!empty($_POST)&&($_POST['action']=='edit'))
{
foreach ($_POST['selected'] as $edit_id)
{
$query = "SELECT * FROM grocery WHERE id = $edit_id";
$result = dbQuery($query);
break;
}

$rowArr=array();
$inRow = mysqli_fetch_array($result);

$id = $inRow['id'];
$shop = $inRow['shop'];
$category = $inRow['category'];
$item = $inRow['item'];
$qnty = $inRow['quantity'];
$unit = $inRow['unit'];
$price_based_on = $inRow['price_based_on'];
$mrp = $inRow['MRP'];
$sellers_price = $inRow['sellers_price'];
$last_updated_on = $inRow['last_updated_on'];
array_push($rowArr, array('id' => $id, 'shop' => $shop, 'category' =>$category, 'item' => $item, 'qnty' => $qnty, 'unit' => $unit, 'price_based_on' => $price_based_on, 'mrp' => $mrp, 'sellers_price' => $sellers_price, 'last_updated_on' => $last_updated_on));
echo json_encode(array('rowArr' => $rowArr));
}

上述脚本生成的输出 (JSON) 为:(我已确保这是在 Chrome 控制台中生成的)

{
"rowArr": [
{
"id": "30",
"shop": "Subhash",
"category": "Spices",
"item": "Duta Corriander Powder",
"qnty": "50",
"unit": "gm",
"price_based_on": "Packet",
"mrp": "15.00",
"sellers_price": "12.00",
"last_updated_on": "2016-12-03"
}
]
}

我的 jQuery 是:

$('#edit').click(function(){
var data = $("#list :input").serialize();
$.post($("#list").attr('action'), data, function(json)
{
if(json.rowArr.length>0)
console.log("Data Exists");
else
console.log("Empty");
currentRow = json.rowArr[0];
console.log(json.rowArr[0].id);
$("#id").val(currentRow.id);
$("#id_disp").val(currentRow.id);
});
});

奇怪的是,上述循环既不会产生 Data Exists 也不会产生 Empty。当我尝试访问 JSON 数据 json.rowArr[0].id 时,出现以下错误:

Uncaught TypeError: Cannot read property 'length' of undefined

为什么会发生这种情况?我该如何修复它?

最佳答案

您应该明确告诉 jQuery 您的响应具有 JSON 格式。根据 docs,您应该将 'json' 作为 $.post 的第四个参数传递。 .

$('#edit').click(function(){
var data = $("#list :input").serialize();
$.post($("#list").attr('action'), data, function(json) {
if(json.rowArr.length>0)
console.log("Data Exists");
else
console.log("Empty");
currentRow = json.rowArr[0];
console.log(json.rowArr[0].id);
$("#id").val(currentRow.id);
$("#id_disp").val(currentRow.id);
}, 'json');
});

关于javascript - 为什么我无法访问 JSON 中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41211188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com