1
我建設使用jQuery UI自動完成搜索(http://jqueryui.com/demos/autocomplete/)jQuery的自動完成自定義HTML結果
我也利用jQuery UI的自動完成HTML擴展,所以我可以根據類別中,風格很好的搜索和顯示的圖標搜索結果是
我的問題是,當我點擊它看起來像這樣的結果:
(Category Icon) Pink Floyd - Category
它出來像這樣在搜索輸入字段:
<div class="search_icons"><img src="images/ico/search_icon_rock.png" class="search_pic_radius"></div>Pink floyd<div class="autocomplete_category"> Rock</div><div class="artist_id_search">15</div><div class="artist_name_search">pink-floyd</div>
這是我的search.php看起來像:
if (isset($_GET['term'])){
$return_arr = array();
try {
$conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT url_name,name,category,id FROM artists WHERE name LIKE :term OR category LIKE :term LIMIT 10');
$stmt->execute(array('term' => '%'.$_GET['term'].'%'));
while($row = $stmt->fetch()) {
if($row['category'] == '1') { $category_icon = '<div class="search_icons"><img src="images/ico/search_icon_rock.png" class="search_pic_radius"></div>'; }
if($row['category'] == '2') { $category_icon = '<div class="search_icons"><img src="images/ico/search_icon_pop.png" class="search_pic_radius"></div>'; }
$return_arr[] = $category_icon . $row['name'] . '<div class="autocomplete_category"> ' . $row['category'] . '</div>'. '<div class="artist_id_search" id="artist_id_search">' . $row['id'] . '</div>'. '<div class="artist_name_search" id="artist_name_search">' . $row['url_name'] . '</div>' ;
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
echo json_encode($return_arr);
}
我想要實現的是,上自動完成的東西,當點擊它應提交表單和上次值2個div的artist_id_search
和artist_name_search
等提交下一個頁面將成爲whatever.php?id=15&artist=pink-floyd
我曾嘗試是要從具備分割功能搜索字符串不必要的部分,但那時我剛剛結束了與id
和url_name
參數在搜索領域並沒有真正實現任何東西,但它並沒有真正可靠地改變圖標名稱等。
我可以從PHP返回2倍的JSON?一旦找到搜索結果中顯示的內容,並且一旦您點擊其中一個搜索結果,就再次顯示值。 – maricos 2014-10-04 12:30:16
爲什麼你不必要地想回傳兩次相同的數據,這是一個性能損失,反正不是必需的。我想你應該這樣做來從你的自定義CSS中應用特定的樣式,但是你可以通過操作JavaScript中的數據並將其填充到DOM元素的innerHTML屬性中來實現。 – 2014-10-04 12:44:24
你是完全正確的,我現在已經整理出來了,構建了一個合適的JSON,但是我確實遇到了一個問題,我怎樣才能從搜索頁面的JSON中訪問這個東西?在PHP中,它現在看起來像這樣:'$ return_arr [] = array('label'=> $ category_icon。$ row ['name']。'