我一直在嘗試幾天得到jquery自動完成工作的方式,我需要它。jquery自動完成與PHP foreach生成結果
到目前爲止,我有這個工作正常:
<script>
$(function() {
var availableTags = [<?php
$taglist = Array();
foreach ($users as $user)
if ($user->getAttribute('first_name') == ''){
$taglist[] = '"'.$user->getUserName().'"';
}else{
$taglist[] = '"'.$user->getAttribute('first_name').' '.$user->getAttribute('last_name').'"';
}
echo join(',', $taglist);
?>];
$("#searchmem").autocomplete({
source: availableTags,
minLength: 2,
select: function(event, ui) {
$("#searchmem").val(ui.item.label);
$("#submit").click();
}
}).data("autocomplete")._renderItem = function (ul, item) {
return $("<li />")
.data("item.autocomplete", item)
.append("<a><img src='/files/avatars/1.jpg' />" + item.label + "</a>")
.appendTo(ul);
}
});
</script>
這將輸出圖像/files/avatars/1.jpg緊鄰各用戶的用戶名或全名。
我遇到的問題是試圖輸出正確的用戶頭像。每個.jpg文件都與用戶名相對應,所以我可以在src中使用$ user-> getUserID(),但這不起作用,因爲它不在$ users用戶的$ user循環中。
我曾嘗試將整個自動完成腳本放在foreach中,當測試時警告正確的東西但自動完成不起作用。
我也試着創建了兩個變量,如
availableTags1 = {標籤:.... $用戶> getUserName()等等...}
availableTags2 = {頭像:... 。$ user-> getUserID()etc ...}
availableTags = availableTags1 + availableTags2;
和
.data("autocomplete")._renderItem = function (ul, item) {
return $("<li />")
.data("item.autocomplete", item)
.append("<a><img src=' + item.avatar + ' />" + item.label + "</a>")
.appendTo(ul);
}
,但這又沒有工作。我完全失去了!我怎樣才能得到它輸出的圖像旁邊的相關用戶名?幫助將不勝感激。
謝謝!完美的作品! – user1871949 2013-02-09 23:59:13