Yet Another Autocomplete
I created this plugin because I was not happy with any of the other ones. This plugin will give you simple, clean autocomplete functionality on the selected text box.
Here's the code:
HTML File:
<form id="myform">
<input type="text" name="my_textbox" id="my_textbox" />
</form>
<script type="text/javascript">
<!--
$(function() {
var data = {
fn : 'lookup'
};
var options = {
min_length : 3,
error_responses : [
"No results.",
"Too many results."
]
};
$("#suggest").suggest("search.php", data, options);
});
-->
</script>
Example server-side PHP script, search.php:
<?php
// Prevent caching
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Jan 1, 2000"); // Date in the past
$fn = $_GET['fn'];
$allowed_fns = array('lookup');
if (!in_array($fn, $allowed_fns)) { exit; }
print call_user_func($fn);
function lookup() {
$q = valueIfSet($_GET['q']);
$attrs = array("uid", "givenname", "sn");
$filter = "level03=95C";
try {
$results = your_ldap_lookup_function($q, $attrs, $filter, true, , 1);
} catch (Exception $e) {
return "Too many results.";
}
if (count($results) === ) {
return "No results.";
}
$list = array();
foreach ($results as $result) {
$sn = $result['sn'];
$gn = $result['givenname'];
$uid = $result['uid'];
$name = "$sn, $gn ($uid)";
array_push($list, $name);
}
return implode("\n", $list);
}
?>
评论