私の目的
jQuery UI オートコンプリートを使用して本を検索し、提案ドロップダウンから本をクリックするselect
と、オートコンプリートの機能を使用して選択された本の詳細を HTML フォームの残りの部分に入力します。
問題
返されたデータに改行が含まれていない限り (description
データベースで呼び出されたテーブル フィールドがあり、格納されたデータに改行があります)、オートコンプリートは魅力的に機能します。しかし、返された配列にフィールド データを含めるdescription
と、候補ドロップダウンが表示されません。ただし、Firebug で確認すると、データが返されています。現れないだけ
コード
// STORING INFORMATION FROM THE DATABASE
$items[$r['book_id']] = array('name'=>$r['book_name'],
'category'=>$r['c_id'],
'author'=>$r['book_author'],
'vendor'=>$r['book_publisher'],
'edition'=>$r['book_edition'],
Culprit here --> 'description'=>$r['book_description'],
'price'=>$r['book_price'],
'date'=>$r['date']);
// DATA FOR POPULATING THE HTML FORM (USING ui.item.<index name>)
$result = array();
foreach ($items as $key=>$value)
{
array_push($result, array("id"=>$key,
"label"=>$key."-".$value['name'],
"value" => strip_tags($value['name']),
"name" => $value['name'],
"cat" => $value['category'],
"author" => $value['author'],
"vendor" => $value['vendor'],
"edition" => $value['edition'],
"description" => $value['description'],
"price" => $value['price'],
"date" => $value['date']));
}
// $result is then supplied to a function which converts the data to json
および配列description
からエントリを削除すると、すべてが期待どおりに機能します。ここでSOスレッドを通過した後、いくつかのことを試しました:$items
$result
私が試したこと
試したstr_replace('\n', '\\n', $r['book_description'])
試したstr_replace('<br />', '\\n', $r['book_description'])
欲求不満から試してもurlencode($r['book_description'])
しかし、それらのどれも機能していないようでした。これに対する回避策はありますか?
前もって感謝します。
アップデート
json_encode
返されたセットを使用すると、次のようになります。