我有一个jQueryUI自动完成脚本,可以从SQL查询中提取结果。这一切都很有效,表单字段返回我期望的结果#34;员工ID - 员工姓名"
autocomplete.js
$(document).ready(function() {
$("#emp_lookup").addClass("grey_text");
$("#emp_lookup").autocomplete({
source: "/lookup.php",
minLength: 2
});
});
lookup.php
<?php
// Query to get users
$_emp_lookup = $_GET['term'];
$q = "SELECT `emp_id`, `fn`, `ln`, `full_name`, `display_name`, `is_active` FROM `emp_info` WHERE (`emp_id` LIKE '%".$emp_lookup."%' OR `fn` LIKE '%".$emp_lookup."%' OR `ln` LIKE '%".$emp_lookup."%' OR `full_name` LIKE '%".$emp_lookup."%' OR `display_name` LIKE '%".$emp_lookup."%') AND `is_active` = 1";
$r = mysqli_query($connect, $q);
$employee = array();
if(mysqli_num_rows($r) > 0){
while($row = mysqli_fetch_assoc($r)){
$result = $row['emp_id']." - ".$row['display_name'];
array_push($employee, $result);
}
}else{
$result = "No employee found";
array_push($employee, $result);
}
$json = json_encode($employee);
echo $json;
?>
我遇到的问题是,在提交表单时,我只想要将Employee ID传递给处理脚本。因此,员工姓名在自动完成结果中的事实严格意味着可读性。与DNS名称相同的方式使我们不必记住IP地址。
答案 0 :(得分:0)
您可以在jQuery UI自动完成中使用客户渲染方法来解析您的PHP脚本提供的结果:
http://api.jqueryui.com/autocomplete/#event-response
对于PHP代码,请确保验证/清理用户输入。您的脚本容易受到SQL注入攻击。