[請益] 用Jquery UI的自動完成撈mysql的資料

看板PHP作者 (Artlanis)時間10年前 (2015/11/08 16:26), 10年前編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/1
抱歉,我不知道這個問題該在php版還是AJAX版問。 小弟在寫進銷庫,想做一個自動完成的功能。 照網路上教學,使用Jquery UI。 主要是想在使用者填寫訂單時,程式可以自動去撈產品的資料庫。 分成表單端跟後台端。 [表單端] <form method="POST"> 產品編號:<input type="text" id="auto1" name="request_serial" value=""> </form> <script language="JavaScript"> $("#auto1").autocomplete({ source: "Autocomplete.php", minLength: 1 }); </script> [後台端] <?php $sql = "SELECT * FROM product WHERE product_serial LIKE '%".$_POST['request_serial']."%'"; $result = mysql_query($sql, $link_ID); $arr = Array(); for($i=0; $i< $row=mysql_fetch_array($result);){ $arr[] = $row['product_serial']; } echo json_encode($arr); ?> 結果: 自動完成功能無動作。 做了以下測試: 1. 將$sql改為"SELECT * FROM product WHERE product_serial"; 可以正常動作,表示表單端的程式碼沒有問題。 2. 直接開啟Autocomplete.php(後台端) 出現 Notice: Undefined index: request_serial。 我懷疑是在後台端要$_POST['request_serial']時出錯,因為使用者還沒有輸入關鍵字, JS以為是空值就出錯停止了。 以下為完整程式碼 表單端 https://goo.gl/VdcOEe 後台端 https://goo.gl/XYf1Oh 使用xampp v5.6.14 請教各位前輩我該如何修正這個問題,是不是有甚麼眉角我沒有注意到的,謝謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 119.77.236.4 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1446971212.A.F3A.html

11/08 16:42, , 1F
前端沒指定method 我記得會用get 傳參數
11/08 16:42, 1F

11/08 16:45, , 2F
然後你應該用get['term'] 去取得輸入的字串
11/08 16:45, 2F
謝謝Jimmy0301的回覆,剛剛修改後還是沒有成功 因為我是新手,想跟你確認一下寫法 1. 我將前端的 <form method="POST"> 改為 <form method="GET"> 2. 後台端 多了一行 $term = $_GET['request_serial']; 3. 將$sql改為 "SELECT * FROM product WHERE product_serial LIKE '%".$term."%'"; 請問這樣對嗎? 還是有甚麼函數我沒有注意到? 謝謝 ※ 編輯: Artlanis (119.77.236.4), 11/08/2015 17:24:12

11/08 22:16, , 3F
先在php中echo隨便文字,開開發者看有沒有執行php程式
11/08 22:16, 3F

11/08 22:30, , 4F
或用$_REQUEST 的方式看看?
11/08 22:30, 4F

11/08 22:35, , 5F
用$_GET["term"]看看?
11/08 22:35, 5F

11/08 22:35, , 6F
非常感謝,成功了。 目前我的做法 原程式碼沒有變動,只有修改後台端的$sql為 "SELECT * FROM product WHERE product_serial LIKE '%".$_GET['term']."%'" 這樣就可以運行了,已經卡了三四天了,心中的大石總算放下了。 現在在研究$_GET['term']的用法。 再次感謝各位前輩的不吝指教,謝謝。 ※ 編輯: Artlanis (119.77.236.4), 11/08/2015 23:14:39
文章代碼(AID): #1MFmTCyw (PHP)
文章代碼(AID): #1MFmTCyw (PHP)