簡體   English   中英

如何將我的 JSON 信息放入 jQuery 數組

[英]How to put my JSON info into a jQuery Array

我有一個項目,我已經為項目價格/價格創建了 JSON 數據我已經走到這一步,幾乎碰壁了,任何幫助都會有所幫助。 我已經檢查了 web 和 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);
        }

在您的 PHP 腳本中,您可以只json_encode()您的對象數組而不將其包裝在字符串中嗎? 而是像這樣對 JSON object 進行編碼:

<?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()方法迭代返回的 Z0ECD11C1D7A287401D148A23BBD7A2 數據:

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

希望這可以幫助:)

當我學習時-我遇到了完全相同的問題-但在這里得到了回答

我當時沒有意識到的是,您可以使用object 表示法(即 json 的 ON)來訪問您發送的數據。

如果您查看我的問題和我選擇的答案,一旦您將數據發送回 javascriot,您就可以輕松訪問它。 在我的示例中,它與在 javascript 中使用data.catagory_desc來查找已編碼的數據一樣嚴格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM