【发布时间】:2011-04-27 01:18:39
【问题描述】:
我正在使用 jQuery UI 自动完成功能,我对 jQuery 和 JSON 还比较陌生。下面是我的代码。我想知道是否可以在回调 url 中指定字段名称和数据表名称,以便 php 文件稍后抓取它。我有许多具有不同名称和 ID 的输入框需要自动完成。每个输入框对应 MySQL 中不同的列和数据表。所以我实际上想替换 "SELECT * FROM projects WHERE project_title REGEXP '.$param'";进入类似“SELECT [column variable] FROM [data table variable] WHERE [column variable] REGEXP '.$param'”;
非常感谢您。
阿布
<script type="text/javascript">
$(function(){
//attach autocomplete
$("#project-title").autocomplete({
//define callback to format results
source: function(req, add){
//pass request to server
$.getJSON("bin/test.php?callback=?", req, function(data) {
//create array for response objects
var suggestions = [];
//process response
$.each(data, function(i, val){
suggestions.push(val.name);
});
//pass array to callback
add(suggestions);
});
},
minLength: 1,
});
});
下面是test.php文件
<?php
include('../db.php');
$param = $_GET["term"];
//query the database
$query = "SELECT * FROM projects WHERE project_title REGEXP '.$param'";
$res = connect($query);
//build array of results
for ($x = 0, $numrows = mysql_num_rows($res); $x < $numrows; $x++) {
$row = mysql_fetch_array($res);
$friends[$x] = array("name" => $row["project_title"]);
}
//echo JSON to page
$response = $_GET["callback"] . "(" . json_encode($friends) . ")";
echo $response;
?>
【问题讨论】:
-
一英里宽的安全漏洞...
-
感谢您提醒我注意安全。我正在阅读一篇文章,其中提到了通过将 autocomplete="off" 放入 标记来轻松解决问题。是否有意义?我怎样才能使它更安全?谢谢。
标签: php mysql autocomplete jsonp