我有以下代码用于填充表单字段。此代码接收已使用 PHP json_encode 函数编码的 JSON 数据集。
该代码分别适用于单引号和双引号,但是有时我会在双引号内使用单引号。一个例子是文本区域内的文本,它可能会说:这个人说“我要去度假”。
我读过单引号不需要转义,并且双引号被正确转义。我已将 Firebug 中的 JSON 代码复制到验证器中,它返回正确,这让我认为下面的代码有问题。我在 Firebug 中遇到的错误是语法错误。奇怪的是,如果我有两个单引号(即打开和关闭),问题就不再存在了。
我已经花了 3 个小时来研究这个问题,但似乎离解决方案还差得远。我一如既往地接受所有建议!我可以根据需要提供更多代码片段。
$.ajax({
type: "GET",
url: "casedata.php",
data: {'caseid':'<?php echo($caseid); ?>', 'callid':'<?php echo($_GET['callid']); ?>', 'stage':'thlViewCall'},
dataType: "json",
async: false,
success: function(data){
$.each((data), function(i, e) {
if($("input[type=text]")) {
$('#'+i).val(e);
}
if($("input[type=select-one]")) {
$('#'+i+' option').prop("selectedIndex", e);
}
if($("input[type=select-multiple]")) {
$('#'+i+' option').prop("selectedIndex", e);
}
if($("input[type=radio]")) {
$('input[name="'+i+'"][value="'+e+'"]').attr('checked', 'checked');
}
});
}
});
编辑:
抱歉,请在下面找到显示此错误的 JSON:
{"calldate":"06-07-2012","adviserid":"18","service":"THL","dda_sen":"eqa","finalhearing_date":"24-07-2012","reason_for_tribunal":"part_4","next_deadline_description":"before_final_evidence","understanding_paperwork":"1","ability_negotiate":"1","legal_complexity":"1","comments":"test","action":"referred_to_tss_for_telephone_support","bgInfo":"The man said \"I'm going on holiday\"","initialAdvice":"test2","logreceived":"no","monitored":"no","monitoredby":"","monitoreddate":"00-00-0000","monitorednotes":"","legalsupport":"no","legalsupportid":"0","legalsupportdate":"00-00-0000","legalsupportnotes":""}