Я использую автозаполнение пользовательского интерфейса jQuery, и я относительно новичок в jQuery и JSON. Ниже мой код. Мне было интересно, если можно указать имя поля и имя таблицы данных внутри URL обратного вызова, чтобы файл php захватил его позже. У меня есть много полей ввода с разными именами и идентификаторами, которые должны иметь автозаполнение. Каждое поле ввода относится к различным столбцам и таблицам данных в MySQL. Так что я на самом деле хочу заменить "SELECT * FROM projects WHERE project_title REGEXP '. $ Param'"; в нечто вроде "SELECT [переменная столбца] FROM [переменная таблицы данных] WHERE [переменная столбца] REGEXP '. $ param'";
Заранее большое спасибо.
Abu
<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;
?>