jQueryAjax中允许混合POST/JSON数据吗?
我有以下代码,其中通过jQueryAjax方法对服务器进行客户端调用。服务器用JSON对结果进行回复。所有这些都可以正常工作,但我发现解析数据所需的“replace”有些麻烦和奇怪,如果我不加上“[”和“]”字符,代码根本不起作用。有没有关于如何改进的建议 客户端代码:jQueryAjax中允许混合POST/JSON数据吗?,jquery,json,ajax,post,Jquery,Json,Ajax,Post,我有以下代码,其中通过jQueryAjax方法对服务器进行客户端调用。服务器用JSON对结果进行回复。所有这些都可以正常工作,但我发现解析数据所需的“replace”有些麻烦和奇怪,如果我不加上“[”和“]”字符,代码根本不起作用。有没有关于如何改进的建议 客户端代码: jQuery.ajax({ type: 'POST', url: 'ajax/cart_update.php?lang=en', data: { 'id': id ,
jQuery.ajax({
type: 'POST',
url: 'ajax/cart_update.php?lang=en',
data: {
'id': id ,
'incr' : increment,
'quantity' : jQuery("#quantity_number" + id).val(),
'final_quantity' : final_quantity,
},
success: function(data){
var data = data.replace("[", "");
data = data.replace("]", "");
if(data != ""){
var obj = jQuery.parseJSON(data);
jQuery("#quantity_number" + id).val(obj.quantity);
jQuery("#total" + id).html(obj.price);
} // if
}
});
服务器(PHP)代码:
输出为字符串:[{“数量”:“8”,“价格”:“$1756.00”}]
为什么我需要加上“[”和“]”字符?如果不加上“[”和“]”字符并解析响应json,它将是一个对象数组。你需要在这个数组上循环,在循环中你可以访问每个对象的属性。
您当前的代码暂时有效,因为数组中很可能只有一项。但是,如果要获得多个项目,当前代码也将中断。如果不禁止“[”和“]”字符并解析响应json,它将是一个对象数组。你需要在这个数组上循环,在循环中你可以访问每个对象的属性。
您当前的代码暂时有效,因为数组中很可能只有一项。但是,如果要获得多个项目,当前代码也将中断。您可以循环数组并获得结果
var obj = jQuery.parseJSON(data);
$.each(obj, function(index, value) {
$("#quantity_number" + id).val(value.quantity);
$("#total" + id).html(value.price);
});
您可以循环数组并获得结果
var obj = jQuery.parseJSON(data);
$.each(obj, function(index, value) {
$("#quantity_number" + id).val(value.quantity);
$("#total" + id).html(value.price);
});
实际上,您正试图从json响应中获得一个对象。使用迭代器(如jquery中的
$)和for..in中的for.)以及纯js中的$)很容易获得:
您可以将其与迭代器一起使用,如$。each()
:
jQuery.ajax({
键入:“POST”,
url:'ajax/cart_update.php?lang=en',
//数据类型:'json',//实际上,您正试图从json响应中获得一个对象。这很容易通过迭代器获得,如$。jquery中的each()
,以及使用纯js的for..in
等:
您可以将其与迭代器一起使用,如$。each()
:
jQuery.ajax({
键入:“POST”,
url:'ajax/cart_update.php?lang=en',
//数据类型:“json”,服务器向您发送了json对象列表,因此您需要删除“[”和“]”。直接解析您的数据和用户数组对象进行迭代
下面的例子可以帮助您
var数据=“[{“cantidad”:“8”,“precio”:“$1756.00”},{“sadsad”:“8”,“precio”:“$1756.00”}]”
服务器向您发送了JSON对象列表,因此您需要删除“[”和“]”。直接解析数据和用户数组对象以进行迭代
下面的例子可以帮助您
var数据=“[{“cantidad”:“8”,“precio”:“$1756.00”},{“sadsad”:“8”,“precio”:“$1756.00”}]”
您不需要使用replace函数。只需解析返回的字符串即可。使用以下代码
jQuery.ajax({
type: 'POST',
url: 'ajax/cart_update.php?lang=en',
data: {
'id': id ,
'incr' : increment,
'quantity' : jQuery("#quantity_number" + id).val(),
'final_quantity' : final_quantity,
},
success: function(data){
if(data != ""){
var obj = JSON.parse(data);
jQuery("#quantity_number" + id).val(obj[0].quantity);
jQuery("#total" + id).html(obj[0].price);
} // if
}
});
您不需要使用replace函数。只需解析返回的字符串即可。使用以下代码
jQuery.ajax({
type: 'POST',
url: 'ajax/cart_update.php?lang=en',
data: {
'id': id ,
'incr' : increment,
'quantity' : jQuery("#quantity_number" + id).val(),
'final_quantity' : final_quantity,
},
success: function(data){
if(data != ""){
var obj = JSON.parse(data);
jQuery("#quantity_number" + id).val(obj[0].quantity);
jQuery("#total" + id).html(obj[0].price);
} // if
}
});
请,添加一些解释!:)请,添加一些解释!:)工作起来像个符咒,谢谢。我忘了我正在发回一个数组,因为它本身就是要json化的源。感谢所有其他贡献者的回复。工作起来像个符咒,谢谢。我忘了我正在发回一个数组,因为它本身就是要json化的源。感谢所有其他贡献者感谢他们的答复。