Как поместить мою информацию JSON в массив jQuery - PullRequest
0 голосов
/ 29 июня 2011

У меня есть проект, в котором я создал данные 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);
        }

Ответы [ 2 ]

1 голос
/ 06 июля 2011

Когда я учился - у меня была точно такая же проблема - но мне ответили здесь

В то время я не осознавал, что вы можете использовать обозначение объекта (что является включением json) для доступа к отправленным данным.

Если вы посмотрите на мой вопрос и выбранный мной ответ, как только вы отправите данные обратно в javascriot, вы сможете легко получить к ним доступ. В моем примере это было бы так же просто, как использование data.catagory_desc в javascript для поиска данных, которые были закодированы.

1 голос
/ 29 июня 2011

В своем скрипте PHP вы можете просто json_encode() массив объектов, не заключая его в строку? И вместо этого закодируйте объект JSON следующим образом:

<?php

// your script ...

echo json_encode($arr);

Это создает массив объектов в кодировке JSON:

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

Сделайте AJAX-запрос в вашем JS для запроса вашего 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);
    });
});

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...