名前の一部を入力すると
ajaxでDBから情報を取得し、すべての名前を入力できるようなautocompleteを作成する場合
jQuery
1$('#name').autocomplete({ 2 source : function(request, response) { 3 $.ajax({ 4 type : 'post', 5 url : 'db_php/autocomplete.php', 6 data : {param : request.term}, 7 dataType : 'json', 8 cache : false 9 }).done(function(jsondata) { 10 response(jsondata); 11 }).fail(function() { 12 response(['']); 13 }); 14 }, 15 autoFocus : false, 16 delay : 300, 17 minLength : 2 18});
php
1//DBから取得後 2 3foreach ($rec as $rd) { 4 $tmp = array(); 5 6 $tmp['value'] = htmlspecialchars($rd['id']).'-'.htmlspecialchars($rd['name']); ・・・A 7 $tmp['label'] = htmlspecialchars($rd['name']).' - '.htmlspecialchars($rd['addr']); ・・・B 8 9 $json[] = $tmp; 10} 11 12header('Content-type:application/json; charset=utf8'); 13echo json_encode($json);
としてみたのですが、
1)
安全のためAとBで「htmlspecialchars()」は必要なのでしょうか。
2)「htmlspecialchars()」が必要な場合
表示の際に「&」が「&」のようになるのを避けたいのですが、jQuery側でreplaceしても問題ないのでしょうか。
それともどこか別のタイミングで行うべきなのでしょうか。
なお、この値はフォームに入力しており、DBとは別の場所で使用します。
最適な方法を教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/10/18 13:13