【问题标题】:How to put my JSON info into a jQuery Array如何将我的 JSON 信息放入 jQuery 数组
【发布时间】:2011-06-29 18:18:25
【问题描述】:

我有一个项目,我为项目价格/价格创建了 JSON 数据,我已经走到这一步,几乎碰壁了,任何帮助都会有所帮助!我已经检查了整个网络和 jQuery.getJSON,但我最终变得超级困惑。

$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);
        }

【问题讨论】:

  • 不要将客户端/服务器代码或不同的语言放在同一个代码块中。
  • mike,谢谢——我只是将它们放在一起,以了解我是如何拉出我的 JSON 数组 + 我需要如何提供我的 jQuery 脚本

标签: php jquery json


【解决方案1】:

在您的 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 中发出 AJAX 请求以查询您的 PHP 脚本,并使用 jQuery 的 $.each()$.parseJSON() 方法迭代返回的 JSON 数据:

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

希望这会有所帮助:)

【讨论】:

  • 感谢您的提示,我想我的方向是正确的,谢谢您 - 现在要了解该领域的价格,哈哈。
【解决方案2】:

在我学习的时候 - 我遇到了完全相同的问题 - 但它得到了回答 here

我当时没有意识到,你可以使用object notation(也就是json的ON)来访问你发送的数据。 p>

如果您查看我的问题和我选择的答案,一旦您将数据发送回 javascriot,您就可以轻松访问它。在我的示例中,它就像在 javascript 中使用 data.catagory_desc 来查找已编码的数据一样简单。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 2022-07-11
    相关资源
    最近更新 更多