作者Artlanis (Artlanis)
看板PHP
标题[请益] 用Jquery UI的自动完成捞mysql的资料
时间Sun Nov 8 16:26:47 2015
抱歉,我不知道这个问题该在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://webptt.com/cn.aspx?n=bbs/PHP/M.1446971212.A.F3A.html
1F:推 Jimmy0301: 前端没指定method 我记得会用get 传参数 11/08 16:42
2F:推 Jimmy0301: 然後你应该用get['term'] 去取得输入的字串 11/08 16:45
谢谢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
3F:→ cf1064: 先在php中echo随便文字,开开发者看有没有执行php程式 11/08 22:16
4F:→ cf1064: 或用$_REQUEST 的方式看看? 11/08 22:30
5F:→ cf1064: 用$_GET["term"]看看? 11/08 22:35
非常感谢,成功了。
目前我的做法
原程式码没有变动,只有修改後台端的$sql为
"SELECT * FROM product WHERE product_serial LIKE '%".$_GET['term']."%'"
这样就可以运行了,已经卡了三四天了,心中的大石总算放下了。
现在在研究$_GET['term']的用法。
再次感谢各位前辈的不吝指教,谢谢。
※ 编辑: Artlanis (119.77.236.4), 11/08/2015 23:14:39