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

时间:2016-12-08 05:35:41

标签: 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},
        datatype: "json",
        success: function (data) {

            alert(data['bronze_price']);

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

    });

,最终结果是某种数组。

console.log(data) 
顺便提一下,

返回{"bronze_price":null,"silver_price":null,"gold_price":"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 ['bronze_price']返回“undefined”,但当我删除所有参数时,它会显示数组{"bronze_price":null,"silver_price":null,"gold_price":"249.00"}。我想访问每个单独的数据(bronze_price,silver_price,gold_price)。所有答案和评论都将不胜感激。

2 个答案:

答案 0 :(得分:2)

设置以下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结构

答案 1 :(得分:1)

它将是data.bronze_price。其他人看起来还不错。