我有一个表单,用户可以从多选选择框中选择一个项目(A)。如果未列出该项,则用户可以从另一个输入文本框(B)添加该项。在(B)中输入的值将执行ajax调用,该调用将项目保存到数据库。保存项目后,将创建一个json对象,然后需要使用更新的列表填充(A)。我所有这些都与选项一起工作。我现在需要包括保存过程是否通过或失败。如果进程通过,那么我需要包含选项,但如果失败,我只需要失败的状态。以下是我提出的建议:
{
"process": [{
"status":"pass" ,
"message":"The Contributors list has been refreshed to contain the entry you just saved." }
],
"newoptions": [
{"optionValue":"Item 1" , "optionDisplay":"Item 1"},
{"optionValue":"Item 2" , "optionDisplay":"Item 2" },
{"optionValue":"Item 3" , "optionDisplay":"Item 3" }
]
}
这就是我在.ajax例程中使用的内容:
success: function(j){
if (j.process.status == 'pass'){
var options = '';
for (var i = 0; i < j.newoptions.length; i++)
{
options += '<option value="' + j.newoptions[i].optionValue + '">' + j.newoptions[i].optionDisplay + '</option>';
}
$('#misc_userID').val(''); // reset value back to null
$("#misc_userID").effect("transfer", { to: $("#group_misc_available") }, 500); //visual showing item added to select
$('#group_misc_available').html(options);
}
else if (j.status == 'fail'){
alert(j.process.message);
}
}
我没有收到错误,但它没有处理j.process.status,所以选择列表(A)没有被刷新..
答案 0 :(得分:3)
您有array
process
因此需要index
if (j.process.status == 'pass'){
将是
if (j.process[0].status == 'pass'){
答案 1 :(得分:3)
您无法正确访问json数据。试试这个
if (j.process[0].status == 'pass'){