Я использую автозаполнение jQuery UI, и я относительно новичок в jQuery и JSON. Ниже мой код. Мне было интересно, можно ли указывать имя поля и имя таблицы данных в URL-адресе обратного вызова, чтобы файл php захватывал его позже. У меня много полей ввода с разными именами и идентификаторами, которые должны иметь автозаполнение. Каждое поле ввода относится к разным столбцам и таблицам данных в MySQL. Поэтому я действительно хочу заменить «SELECT * FROM projects WHERE project_title REGEXP». $ Param '"; в нечто вроде «SELECT [переменная столбца] FROM [переменная таблицы данных] WHERE [переменная столбца] REGEXP '. $ param'";pass mysql datatable name in autocomplete jsonp
Большое вам спасибо.
Абу
<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" внутри тега . Имеет ли это смысл? Как я могу сделать его более безопасным? Благодарю. – Abu