I've seen a lot of questions dealing with passing an array with label and value properties via JSON, but not much about passing strings. My problem is that I cannot seem to get my autocomplete to fill. I ran a dump function and am getting these sample values passed via JSON to the autocomplete:
0: 23456
1: 21111
2: 25698
Here's some code:
$("#auto_id").autocomplete( {
source: function(request,response) {
$.ajax ( {
url: "fill_id.php",
data: {term: request.term},
dataType: "json",
success: function(data) {
//what goes here?
}
}) }
});
Here is fill_id.php:
$param = $_GET['term'];
$options = array();
$db = new SQLite3('database/main.db');
$results = $db->query("SELECT distinct(turninId) FROM main WHERE turninid LIKE '".$param."%'");
while ($row_id = $results->fetchArray()) {
$options[] = $row_id['turninId'];
}
echo json_encode($options);
My autocomplete remains blank. How do I change my JSON array to fill it? Or what do I include in my ajax success function?
You can stick very much to the remote demo of jQuery UI's Autocomplete: http://jqueryui.com/resources/demos/autocomplete/remote-jsonp.html
To get your results into the autocompleted list, you need to put a object with a label and a value to the response parameter (which is actually a function) inside your ajax success function:
But this will only work if you modify yor fill_id.php a bit:
Of course, when you don't have a title or anything in your table, you can also just leave your response as it is and repeat the id in your success callback. Important is, that you fill your
response
function in the autocomplete with a value/item pair:edit: updated the reference link to the new jquery UI's autocomplete ui