나는 이것이 실패하고있는 지점을 찾아 내기 위해 고심하고있다. 내 로컬 PC에서 php/jquery를 사용하여이 플러그인을 사용할 수 있지만 Perl을 사용하여 내 프로덕션 상자에서 복제하려고합니다. (여기서 PHP는 내가 들어 가지 않는 이유로 옵션이 아닙니다.)Perl에서 JQuery 자동 완성
index.cgi - 이것은 텍스트 상자가 들어있는 html 페이지를 생성하는 perl 코드입니다. 이것은 사용되는 실제 JQuery와 인 -
#!/usr/bin/perl
use warnings;
use strict;
use CGI;
use DBI;
use JSON;
my $cgi = CGI->new;
print $cgi->header(-type => "application/json", -charset => "utf-8");
my $dbh = DBI->connect('dbi:mysql:hostname=test;database=test',"test","test");
my $term = $cgi->param('term');
my $sth = $dbh->prepare(qq{SELECT customer.name, customer.id FROM test WHERE customer.name ?;}) or die $dbh->errstr;
$sth->execute($term.'%') or die $sth->errstr;
my $json = {};
while(my @customer = $sth->fetchrow_array()) {
$json->{$customer[0]} = $customer[1];
}
print JSON::to_json($json);
test.js :
-#!/usr/bin/perl -w
use DBI;
use CGI;
use warnings;
use strict;
$cgi = new CGI;
$cgi->autoEscape(undef);
print $cgi->header;
print $cgi->start_html(-title=>'test',
-dtd=>'//W3C//DTD HTML 4.01 Transitional//EN',
-style=>'/themes/ui-lightness/jquery.ui.all.css',
-script=>[
{-type=>'javascript', -src=>'/js/jquery-1.5.2.min.js'},
{-type=>'javascript', -src=>'/js/test.js'},
{-type=>'javascript', -src=>'/ui/jquery-ui-1.8.11.custom.js'},
{-type=>'javascript', -src=>'/ui/jquery.ui.core.js'},
{-type=>'javascript', -src=>'/ui/jquery.ui.widget.js'},
{-type=>'javascript', -src=>'/ui/jquery.ui.position.js'},
{-type=>'javascript', -src=>'/ui/jquery.ui.autocomplete.js'}
]
);
print $cgi->start_div({-class=>'ui-widget'});
print $cgi->textfield(-id=>'customer',-size=>25),$cgi->br;
print $cgi->end_div(),$cgi->br;
print $cgi->div({-class=>'ui-widget-content',-id=>'log'});
print $cgi->end_html;
test.pl 이것은 자동 완성에 JSON을 공급하는 백그라운드에서 실행되는 코드입니다
$(function() {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").attr("scrollTop", 0);
}
$("#customer").autocomplete({
source: "test.pl?term=",
minLength: 2,
select: function(event, ui) {
log(ui.item ?
"Value: " + ui.item.value + " Key " + ui.item.id :
"Nothing selected, input was " + this.value);
}
});
});
저는 Google을 둘러 보았지만 JQuery를 사용하여 Perl의 예가있는 곳을 찾을 수 없었습니다. test.js와 index.cgi 파일은 jquery 자동 완성을위한 jquery-ui 예제 파일에서 코드를 복제합니다. 단, index.cgi은 CGI.pm을 사용하여 Perl로 작성됩니다.
도움이 될만한 점은 여기에있는 서버 및 응용 프로그램의 특성으로 인해 언어가 다소 제한적이라는 것입니다.
test.pl도 컴파일하지 않습니다. – tadmc
나는 당신이 그 일에 열중하지 않는다고 말했지만, 왜 당신이 서버에 PHP를 설치할 수 없는지 궁금합니다. –
'use strict'와'warnings'가 없습니다. 그것들을 생략함으로써 시간을 낭비하지 마십시오. – Lumi