我已经在下面发布了我的脚本,当前脚本的输出是这样的。
["Error1"、"Error2"、"Error3"]
["Good1"、"Good2"、"古德3"]
我想在单独的段落中输出每个错误,在另一段中输出每个好
PHP脚本
$Error[] = "Error1";
$Error[] = "Error2";
$Error[] = "Error3";
$Good[] = "Good1";
$Good[] = "Good2";
$Good[] = "Good3";
$Data["Error"] = json_encode($Error);
$Data["Good"] = json_encode($Good);
die(json_encode($Data));
Jquery脚本
function _Request()
{
$("form").submit(function(e)
{
e.preventDefault();
$.ajax(
{
url: $(this).attr("action"),
type: "POST",
data: $(this).serializeArray(),
dataType: 'json',
success: function(Result)
{
var Data = "";
$.each(Result, function(Index, Item)
{
Data += "<p>" + Item + "</p>";
});
$("#Result").html(Data);
}
});
});
}
不要单独对数组进行JSON编码,只需在最后对完整的数据结构进行编码,否则在客户端解码时,嵌套的JSON将被视为字符串。
这样做:
$Error[] = "Error1";
$Error[] = "Error2";
$Error[] = "Error3";
$Good[] = "Good1";
$Good[] = "Good2";
$Good[] = "Good3";
$Data["Error"] = $Error;
$Data["Good"] = $Good;
echo json_encode($Data);
然后,您将在客户端处理这样的数据:
$.ajax(
{
url: $(this).attr("action"),
type: "POST",
data: $(this).serializeArray(),
dataType: 'json',
success: function(data)
{
var $result = $('#Result');
$result.empty();
$.each(data.Error, function(idx, item) {
$result.append('<p class="error">' + item + '</p>');
});
$.each(data.Good, function(idx, item) {
$result.append('<p class="good">' + item + '</p>');
});
}
});
注意,我在段落中添加了类名,以防您想通过方便的类来控制它们的CSS显示。
你是这样说的吗?
var Data = "";
// error
$.each(Result.Error, function(Index, Item)
{
Data += "<p>" + Item + "</p>";
});
//Good
$.each(Result.Good, function(Index, Item)
{
Data += "<p>" + Item + "</p>";
});
$("#Result").html(Data);
您需要进入第二级
假设您的数据是:
Result = {Error:["Error1","Error2","Error3"],
Good:["Good1","Good2","Good3"]}
然后。。。
$.each(Result, function(Index, Item)
{
$.each(Item, function(i,d){
Data += "<p>" + d + "</p>";
})
});
这是一把小提琴:http://jsfiddle.net/charrisgw/kjqdhfec/