Php 为什么我对JSON对象的AJAX调用会返回未定义的特定内容?

Php 为什么我对JSON对象的AJAX调用会返回未定义的特定内容?,php,jquery,json,ajax,Php,Jquery,Json,Ajax,我这里有一个AJAX请求: var model = $("#variation").val(); var problem_id = $('input[name="problem"]:checked').val(); $.ajax({ type: "POST", url: "../common/prices.php", data: {model: model, problem_id: problem_id},

我这里有一个AJAX请求:

    var model = $("#variation").val();
    var problem_id = $('input[name="problem"]:checked').val();
    $.ajax({
        type: "POST",
        url: "../common/prices.php",
        data: {model: model, problem_id: problem_id},
        datatype: "json",
        success: function (data) {

            alert(data['bronze_price']);

        },
        error: function() {
            alert("Error: Contact administrator");
         }

    });
最终的结果是某种数组

console.log(data) 
顺便说一下,返回
{“青铜价格”:null,“白银价格”:null,“黄金价格”:“249.00”}

这是PHP代码:

        $query = "SELECT * FROM ext_product_price WHERE product_id='".$_POST['model']."' AND problem_id='".$_POST['problem_id']."'";

        $result = mysqli_query($link, $query);

        $row = mysqli_fetch_array($result);

        die(json_encode(array("bronze_price"=> $row['bronze_price'], "silver_price"=>$row['silver_price'], "gold_price"=>$row['gold_price'])));

因此,data['brown_price']返回“undefined”,但当我删除所有参数时,它会显示数组
{“brown_price”:null,“silver_price”:null,“gold_price”:“249.00”}
。我想访问每个单独的数据(铜价、银价、金价)。非常感谢您的所有回答和评论。

设置以下json标题以返回包含有效内容类型的json

header('Content-Type: application/json');

die(json_encode(array("bronze_price"=> $row['bronze_price'], "silver_price"=>$row['silver_price'], "gold_price"=>$row['gold_price'])));
您可以使用点符号来获取值

alert(data.bronze_price);

确保返回正确的json结构,它将是
data.brown\u price
。其他人看起来还行。

控制台.log(JSON.stringify(数据))在控制台上记录什么?@guest271314它返回
“{code>”铜价\\”:空、\“银价\”:空、\“金价\:\”249.00\“}”
我最近更改了它。当I console.log(data)时,它返回
{“brown_price”:null,“silver_price”:null,“gold_price”:“249.00”}
,那么这个答案仍然适用吗?答案的最后一行仍然适用:))您确定您有表行名称
brown\u price
silver\u price
它们在db中有值吗?是的,它们是有意为空的。一旦我添加了标题,它返回null而不是undefined,gold_price表返回一个实际值。谢谢