私のオートコンプリートのコードが..です
jQuery("#name").autocomplete('<?php echo HTTP_PATH.'/lensmaterials/getBrands'; ?>', {
multiple: true,
mustMatch: true,
matchContains: true,
autoFill: false,
dataType: "json",
parse: function(data) {
return $.map(data, function(item) {
return { data: item, value: item.label, result: item.label};
});
},
formatItem: function(item) {
return '<li>' + item.label + '</li>';
}
});
私は未定義より価値よりも、未定義よりも、価値のようなリストを取得しています。 ファイアーバグでエラーが発生しました。値を選択すると、テキストボックスに値が入力されません。 私は美しい方法で価値を求めています。 JSON文字列を返すこと.. UL、李にリストを示す本部...
マイコントローラー・コードされている
public function getBrands(){
$brandList = $this->Brand->find('list',array('fields'=>array('id','brand_name'),'order' => array('Brand.brand_name')));
//pr($brandList); exit;
foreach ($brandList as $key => $name) {
$json_output[]['id'] = $key;
$json_output[]['label'] = $name;
}
echo json_encode($json_output);
$this->autoRender = false;
}
は
[{"id":1},{"label":"Bvlgari"},{"id":2},{"label":"Chanel"},{"id":7},{"label":"D & G"},{"id":8},{"label":"Dior"},{"id":10},{"label":"Emporio Armani"},{"id":11},{"label":"Fendi"},{"id":12},{"label":"Giorgio Armani"},{"id":13},{"label":"Gucci"},{"id":14},{"label":"Oakley"},{"id":15},{"label":"Oliver Peoples"},{"id":16},{"label":"Paul Smith"},{"id":4},{"label":"Polo Ralph Lauren"},{"id":18},{"label":"Prada"},{"id":19},{"label":"Prada Linea Rossa"},{"id":20},{"label":"Ray Ban"},{"id":21},{"label":"Tiffany"},{"id":3},{"label":"Tom Ford"}]
I入力時にそのが戻らない決勝です。それは私がシャネルを持っていて、私がタイプしていてフォーマットされていないものよりも、定義されていないものが私のキーアップを続けることは決してありません。それは一定のままです。
エラーとは何ですか? http://jsfiddle.net/のデモを作成できますか? –
'sは定義されていません [このエラーで中断する] s = toLowerCase(); ' これはエラーです それを確認しましたjsonlint.com有効な正しい – Sankalp
' json_encode'は常に有効なJSONを作成しますが、アプリケーションが渡すデータをアプリケーションが理解できるとは限りません。データはまた理解されるように構造でなければならない。 –