Автозаполнение не работает: весь подход неправильный или я допустил только некоторые ошибки?
#!/usr/local/bin/perl
use warnings; use 5.014; use utf8;
use Mojolicious::Lite;
use DBI;
my $dbh = DBI->connect( ... ) or die $DBI::errstr;
my $table = 'my_table';
get '/input' => sub {
my $self = shift;
$self->render( 'input' );
};
get '/search_db' => sub {
my $self = shift;
my $col = $self->param( 'col' );
my $sth = $dbh->prepare( "SELECT $col FROM $table" );
$sth->execute();
my $ref;
while ( my $row = $sth->fetchrow_arrayref() ) {
push @$ref, @$row;
}
$self->render( json => $ref );
};
app->start;
__DATA__
@@ input.html.ep
<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script src="/js_local/development-bundle/jquery-1.6.2.js"></script>
<script src="/js_local/development-bundle/ui/jquery.ui.core.js"></script>
<script src="/js_local/development-bundle/ui/jquery.ui.widget.js"></script>
<script src="/js_local/development-bundle/ui/jquery.ui.position.js"></script>
<script src="/js_local/development-bundle/ui/jquery.ui.autocomplete.js"></script>
<script type="text/javascript">
$(function() {
$("#vorname").autocomplete({
source: '/search_db?col=vorname',
minLength: 2
});
});
</script>
</head>
<body>
<form>
<table>
<tr><td>Vorname:</td><td><input type="text" id="vorname"
name="vorname" autocomplete="off"/></td></tr>
<tr><td>Nachname:</td><td><input type="text" id="nachname"
name="nachname" autocomplete="on" /></td></tr>
</table><br />
<input type="submit" value="OK"/>
</form>
</body>
</html>
Я думаю, что я на шаг впереди: теперь после второго символа я получаю все именапоявляются как выбор.