フォームフィールドにデータを入力するために使用している次のコードがあります。このコードは、PHP の json_encode 関数を使用してエンコードされた JSON データセットを受け取ります。
このコードは、一重引用符と二重引用符を別々に使用しても問題なく動作しますが、二重引用符の中に一重引用符が含まれる場合があります。例としては、次のようなテキストエリア内のテキストがあります: The man said "I'm going onvacation".
一重引用符はエスケープする必要がなく、二重引用符は正しくエスケープされていることを読みました。JSON コードを Firebug からバリデーターにコピーしたところ、正しく返されたので、以下のコードに問題があると思われます。Firebug で発生するエラーは構文エラーです。奇妙なことに、単一引用符が 2 つある場合 (つまり、開閉する場合)、問題はなくなりました。
私はこれを見て 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":""}