[PHP]關鍵字建議列表

閱讀時間約 4 分鐘

在欄位輸入關鍵字,就會顯示提示列表。

架構

由HTML表單、jQuery的AJAX和PHP與MySQL組成。

先在HTML的文字輸入欄位,輸入關鍵字,接著會呼叫jQuery的AJAX去伺服器,取得建議列表;伺服器收到需求後,PHP會連接MySQL,取得建議列表,接著會建立JSON文件並回傳。


HTML

文字輸入欄位與關鍵字列表

<input type="TEXT" id="txtSearch" name="txtSearch" autocomplete="off"/>
<input type="SUBMIT" value="搜尋"/><br/>
<div id="result"></div>


jQuery的AJAX請求

//註冊​keyup事件
$("#txtSearch").bind('keyup', function() {
// 取得表單欄位值
var value = $('#txtSearch').val();
// 使用HTTP GET方法送出Ajax請求
$.ajax({
type: 'GET',
url: 'getSuggest.php',
data: { search : value },
success: function(data) {
// 顯示傳回的資料
var result = document.getElementById("result");
result.innerHTML = "";
// 顯示所有JSON陣列的關鍵字清單
$.each(data, function (key, val) {
//資料處理
});
}
});
return false;
});


PHP連接MySQL

// 建立資料庫連接
$link=mysqli_connect("localhost","root","12345678","testsql");
$arr = array();
// 檢查是否有輸入查詢字串
if ( isset($_GET["search"]) && $_GET["search"] != '' ) {
// 處理特殊字元
$search = addslashes($_GET["search"]);
// 建立SQL指令字串
$sql = "SELECT distinct(title) " . "FROM suggest WHERE title LIKE('" . $search . "%') ORDER BY title";
// 執行SQL查詢
$result = mysqli_query($link, $sql);
// 取得記錄資料
while ( $row = mysqli_fetch_row($result) ) {
// 取得欄位值
array_push($arr, $row[0]);
}
}
echo json_encode($arr,JSON_UNESCAPED_UNICODE);//json編碼
mysqli_close($link); // 關閉資料庫連接






8會員
123內容數
嗨,我是一名程式設計師,會在這分享開發與學習紀錄。
留言0
查看全部
發表第一個留言支持創作者!
小黑與程式的邂逅 的其他內容
JSON(JavaScript Object Notation)是AJAX(參考:[PHP][AJAX]介紹)常用的資料交換格式。在PHP有提供函數,可以將資料轉換成JSON。除外JSON比XML快速且簡單。 語法 資料是由鍵和值(Key-value)組成。 鍵和值之間用「:」區隔。 資料之
AJAX(Asynchronous JavaScript And XML)為JavaScript和XML的非同步技術,可以讓瀏覽器建立快速、更加和容易使用的操作介面。AJAX核心技術是非同步的HTTP請求(Asynchronous HTTP Requests),除了第一次載入網頁外,HTTP請求是在
Laravel是一個以MVC(參考:[設計模式]MVC)為架構的PHP Web框架。Laravel支援使用者身份驗證和授權,提供模組化套件系統。Laravel使用Blade模板系統將PHP程式碼與HTML網頁分離。 安裝環境 下載安裝composer https://getcomposer.o
這邊分三個部分:新增、檢視和寄送郵件給留言者。 新增 底下是HTML的輸入內容的程式碼: <table border="1"> <tr> <td><font size="2">姓名:</font></td> <td><input type="text" size="30"
底下是HTML的上傳檔案程式碼: <form action="upload.php" method="post" enctype="multipart/form-data"> 選擇檔案: <input type="file" name="file"/><hr/> <input typ
購物車(Shopping cart)是採購商品時,很重要的工具。 此篇是使用Cookie建立購物車。 從HTML的下拉式選單選擇商品,並輸入數量,然後加入購物車。而在購物車中,可以刪除商品。 底下是HTML的下拉式選單程式碼: <select name="Item"> <option v
JSON(JavaScript Object Notation)是AJAX(參考:[PHP][AJAX]介紹)常用的資料交換格式。在PHP有提供函數,可以將資料轉換成JSON。除外JSON比XML快速且簡單。 語法 資料是由鍵和值(Key-value)組成。 鍵和值之間用「:」區隔。 資料之
AJAX(Asynchronous JavaScript And XML)為JavaScript和XML的非同步技術,可以讓瀏覽器建立快速、更加和容易使用的操作介面。AJAX核心技術是非同步的HTTP請求(Asynchronous HTTP Requests),除了第一次載入網頁外,HTTP請求是在
Laravel是一個以MVC(參考:[設計模式]MVC)為架構的PHP Web框架。Laravel支援使用者身份驗證和授權,提供模組化套件系統。Laravel使用Blade模板系統將PHP程式碼與HTML網頁分離。 安裝環境 下載安裝composer https://getcomposer.o
這邊分三個部分:新增、檢視和寄送郵件給留言者。 新增 底下是HTML的輸入內容的程式碼: <table border="1"> <tr> <td><font size="2">姓名:</font></td> <td><input type="text" size="30"
底下是HTML的上傳檔案程式碼: <form action="upload.php" method="post" enctype="multipart/form-data"> 選擇檔案: <input type="file" name="file"/><hr/> <input typ
購物車(Shopping cart)是採購商品時,很重要的工具。 此篇是使用Cookie建立購物車。 從HTML的下拉式選單選擇商品,並輸入數量,然後加入購物車。而在購物車中,可以刪除商品。 底下是HTML的下拉式選單程式碼: <select name="Item"> <option v
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
isset(), empty() 和 is_null() 是 PHP 中常用的三個函數,它們用於檢查變量是否已經設置或是否為空值。以下是它們的區別:
Thumbnail
程式如下: 跑了五次,每次判斷一千萬回 f1() 陣列的方式: 5.2219750881195 5.194901943
Thumbnail
這支 PHP 的小程式,輸入時間,會顯示回傳的時間: 放在 command line 執行,如下: $ php cst.php “2018–04–01 00:00:00 cst” 多了 14 小時,好神奇。 追 PHP Source 好了,看問題在哪。找到這支定義時區的設定: timezonemap
E 本筆記參考: 1. https://hivenson.pixnet.net/blog/post/191702742
取得2021年11月共有幾天: $total_days = cal_days_in_month(CAL_GREGORIAN, 11, 2021);   // $total_days=30 本筆記參考: 1. https://www.codegrepper.com/code-examples/php
  // $data is a two-dimensional array array_multisort(array_column($data, 'column_name'), SORT_ASC, $data); array_multisort(array_column($data, 'colum
Thumbnail
四捨五入到小數點後第二位,並自動補0到小數點後第二位: sprintf("%.2f", round($num,2)) 本筆記參考: 1. https://www.cnblogs.com/ryanzheng/p/12292852.html
Laravel 透過request()->ip拿到的ip不是client real ip,原來是因為前面有一層cloudflare,解決方法如下,改用下面這段script來取ip: E 可以包成helper function方便使用。 值得一提的是,HTTP_CF_CONNECTING_IP有可能
在PHP 7 版本之前,?: 這種寫法稱為,「Ternary Operator」: $data = isset($data) ? $data : 'hello'; PHP 7 之後,??這種寫法稱為「Null Coalescing Operator」: $data = $data ?? 'hell
Thumbnail
A. 安裝APPSERV 至官網下載https://www.appserv.org/en/ 最新版本APPSERV8.6.0並直接安裝: 安裝完包含預設五個資料夾: 請於【www】內加入網頁內容,預設首頁index.php。 於瀏覽器網址輸入【localhost】即可檢視到預設的首頁: B.
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
isset(), empty() 和 is_null() 是 PHP 中常用的三個函數,它們用於檢查變量是否已經設置或是否為空值。以下是它們的區別:
Thumbnail
程式如下: 跑了五次,每次判斷一千萬回 f1() 陣列的方式: 5.2219750881195 5.194901943
Thumbnail
這支 PHP 的小程式,輸入時間,會顯示回傳的時間: 放在 command line 執行,如下: $ php cst.php “2018–04–01 00:00:00 cst” 多了 14 小時,好神奇。 追 PHP Source 好了,看問題在哪。找到這支定義時區的設定: timezonemap
E 本筆記參考: 1. https://hivenson.pixnet.net/blog/post/191702742
取得2021年11月共有幾天: $total_days = cal_days_in_month(CAL_GREGORIAN, 11, 2021);   // $total_days=30 本筆記參考: 1. https://www.codegrepper.com/code-examples/php
  // $data is a two-dimensional array array_multisort(array_column($data, 'column_name'), SORT_ASC, $data); array_multisort(array_column($data, 'colum
Thumbnail
四捨五入到小數點後第二位,並自動補0到小數點後第二位: sprintf("%.2f", round($num,2)) 本筆記參考: 1. https://www.cnblogs.com/ryanzheng/p/12292852.html
Laravel 透過request()->ip拿到的ip不是client real ip,原來是因為前面有一層cloudflare,解決方法如下,改用下面這段script來取ip: E 可以包成helper function方便使用。 值得一提的是,HTTP_CF_CONNECTING_IP有可能
在PHP 7 版本之前,?: 這種寫法稱為,「Ternary Operator」: $data = isset($data) ? $data : 'hello'; PHP 7 之後,??這種寫法稱為「Null Coalescing Operator」: $data = $data ?? 'hell
Thumbnail
A. 安裝APPSERV 至官網下載https://www.appserv.org/en/ 最新版本APPSERV8.6.0並直接安裝: 安裝完包含預設五個資料夾: 請於【www】內加入網頁內容,預設首頁index.php。 於瀏覽器網址輸入【localhost】即可檢視到預設的首頁: B.