我有一个项目,我已经为项目价格/价格创建了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);
}
答案 0 :(得分: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);
});
});
希望这会有所帮助:)
答案 1 :(得分:1)
当我在学习时 - 我遇到了完全相同的问题 - 但它得到了回答here
我当时没有意识到您可以使用 对象表示法 (这是json的ON)来访问您发送的数据。
如果您查看我的问题和我选择的答案,一旦您将数据发送回javascriot,您就可以轻松访问它。在我的例子中,它与在javascript中使用data.catagory_desc
来查找已编码的数据一样简单。