2012-09-18 63 views
1

PHP:陣列到jQuery的UI自動完成

json_encode($data) 

輸出

[{ 「SID」: 「0032」, 「名稱」: 「德國」}]

我想在jquery-ui自動完成中使用這個。但在jQuery的UI DOC源看起來像這樣

var projects = [ 
     { 
      value: "jquery", 
      label: "jQuery", 
      desc: "the write less, do more, JavaScript library", 
      icon: "jquery_32x32.png" 
     } 
    ]; 

我怎樣才能PHP輸出轉換爲這種陣列中的JavaScript?

參考:http://jqueryui.com/demos/autocomplete/#custom-data

回答

2

翻拍數組:

$toJSON = array(); 
foreach($data as $num => $val){ 
    $toJSON[$num]['value'] = $val['sid']; 
    $toJSON[$num]['label'] = $val['name']; 
} 
echo json_encode($toJSON); 
0

什麼:

var projects = eval(data);

在JavaScript代碼。

+0

沒有必要使用eval那裏,用PHP,你可以把任何你想要的JSON編碼陣列 – Jarry

1
var availableTags = <?=json_encode($yourArray);?>; 

$("#yourInput_text").autocomplete({ 
    source: availableTags, 
    focus: function (event, ui) { 
     $("#yourInput_text").val(ui.item.name); 
     return false;            }, 
    select: function (event, ui) { 
     $("#yourInput_text").val(ui.item.name); 
     $("#yourInput).val(ui.item.sid);                 
     return false;            }, 
minLength: 4                
});