如何把我的JSON信息放到一个jQuery数组中

问题描述:

我有一个项目,我已经为项目价格/价格创建了JSON数据我已经得到了这么多,几乎跑到了墙上,任何帮助都将有所帮助!我已经检查了所有的网络和jQuery.getJSON,但我结束了超级困惑。如何把我的JSON信息放到一个jQuery数组中

$data = mysql_query("SELECT * FROM xxx") 
or die(mysql_error()); 

    $arr = array(); 
    $rs = mysql_query("SELECT product, price FROM products"); 
    while($obj = mysql_fetch_object($rs)) { 
    $arr[] = $obj; 
    } 
    echo '{"products":'.json_encode($arr).'}'; 

我需要的产品价格和产品名称为这个jQuery脚本

 $(document).ready(function() { 
       /*** CONSTANTS ***/ 
       var KEY = 0; 
       var VALUE = 1; 
       /*** DEFINE DATA SETS ***/ 
       var POINTS = [ ["$productA", $PRICE ], ["$productB", $PRICE], ["$productC", $PRICE], ["$productD", $PRICE], ["$productE", $PRICE], ["$productF", $PRICE] ]; 
       var SHIPPING_COSTS = [ ["Pickup", 0], ["Next Day Delivery", 30], ["Same Day Print/Same Day Delivery", 65] ]; 

       for (var i = 0; i < POINTS.length; i++) { 
        $("#quantity").append("<option value='" + POINTS[i][VALUE] + "'>" + POINTS[i][KEY] + "</option>"); 
       } 
       for (var i = 0; i < SHIPPING_COSTS.length; i++) { 
        $("#shipping").append("<option value='" + SHIPPING_COSTS[i][VALUE] + "'>" + SHIPPING_COSTS[i][KEY] + "</option>"); 
       } 

       $("select.autoUpdatePrice, input.autoUpdatePrice").bind("mousedown click change", function(event) { 
        Calculate(); 
       }); 
       Calculate();  
      }); 


     function Calculate() { 
      var net = parseFloat($("#quantity").val()); 
      /* Calculate the magical # by adding the form fields*/ 
      var designFee = $("#abcDesignFee").attr("checked") ? $("#abcDesignFee").val() : 0.0; 
      var proofFee = $("#abcProofFee").attr("checked") ? $("#abcProofFee").val() : 0.0; 
      var MyPrice; 
      MyPrice = parseFloat(parseFloat(proofFee) + parseFloat(designFee) + net + parseFloat($("#shipping").val())); 
      $("#DumpHere").html("Your Price: $" + formatNumber(MyPrice)); 
      $("#abcName").val($("#quantity").find(":selected").text() + " " + ProductNamePlural); 
      $("#abcPrice").val(MyPrice); 
     } 
+0

请勿将客户端/服务器代码或不同的语言放在同一个代码块中。 – mikerobi

+0

迈克,谢谢 - 我只是把它们放在一起给我一个想法,我是如何拉我的JSON数组+我如何需要喂我的jQuery脚本 – David

在你的PHP脚本,可你只是json_encode()你的对象的数组,而不在字符串中的包装呢?而是编码JSON对象,像这样:

<?php 

// your script ... 

echo json_encode($arr); 

这将创建JSON编码对象的数组:

[{"name":"item 1","price":4.99},{"name":"item 2","price":9.99}] 

,让您的JS来查询你的PHP脚本的AJAX请求,并使用jQuery的$.each()$.parseJSON()方法来遍历返回的JSON数据:

$.post('get_products.php', { data: foo }, function(json) { 
    $.each($.parseJSON(json), function(key, product) { 
     console.log(product.name + ' ' + product.price); 
    }); 
}); 

希望这有助于:)

+1

感谢您的提示,我想我正在朝着正确的方向,谢谢你 - 现在要得到田里的价格,哈哈。 – David

当我学习 - 我有完全一样的问题 - 但它得到了回答here

什么我不知道,在当时是可以使用对象符号(这是开json)来访问你发送的数据。

如果你看看我的问题和我选择的答案,一旦你将数据发回给javascriot,你可以轻松访问它。在我的例子中,它会像在javascript中使用data.catagory_desc一样直接找到被编码的数据。