- perl: CGI::Ajax; use HTML::Template;, bibi, 14:08 , 22-Сен-08 (1)
вот код забыл написать#!/usr/bin/perl # @(#) $Id: ajax.cgi 613 2006-01-24 19:31:08Z dom $ # User registration script. use warnings; use CGI; use CGI::Ajax; use CGI::Carp qw(fatalsToBrowser); use HTML::Template; my $dir="../1/"; my $cgi = CGI->new(); sub check_username { my ( $user ) = @_; return unless -f '/tmp/users.txt'; open my $fh, '<', '/tmp/users.txt' or return "open(/tmp/users.txt): $!"; while (<$fh>) { chomp; return "Username '$user' taken!" if lc $_ eq lc $user; } return ''; } sub save_username { my ( $user ) = @_; open my $fh, '>>', '/tmp/users.txt' or die "open(>>/tmp/users.txt): $!"; print $fh "$user\n"; close $fh; return; } sub main { $template = HTML::Template->new(filename => $dir.'test2.html' ,die_on_bad_params => '0'); my $url = $cgi ->url(-relative => 1); $template->param(URL => $url); $template->param(PJX => $ajax); if ( my $user = $cgi->param('user') ) { my $err = check_username( $user ); if ( $err ) { $template->param(NOTS => 'nono'); } else { save_username( $user ); $template->param(NOTS => 'yesyes'); } } #my $html = $template->output; # return $html; return $template->output; } $cgi->header( -charset => "utf8");
my $ajax = CGI::Ajax->new( check_username => \&check_username ); $ajax->JSDEBUG(1); print $ajax->build_html( $cgi, \&main ); <html><head> <script type="text/javascript" src="binding.js"></script> <TMPL_VAR NAME="PJX"> <title>Signup!</title> </head><body> <h1>Signup!</h1> <TMPL_VAR NAME="NOTS"> <form action="<TMPL_VAR NAME="URL">" method="post"> <p>Please fill in the details to create a new Account.</p> <p>Username: <input type="text" name="user" id="user"/> <em id="baduser"></em></p> <p>Password: <input type="password" name="pass" id="pass"/></p> <p><input type="submit" name="submit" value="SIGNUP"/></p> </form></body></html> binding.js - такой как по ссылке, то есть проблема не в нем, скорее всего кто знает подскжаите хочется добить это дело!
- perl: CGI::Ajax; use HTML::Template;, angra, 21:57 , 22-Сен-08 (2)
с CGI::Ajax не работал, так как простейший аякс занимает меньше странички на js и вообще никакого кода на стороне сервера. Посмотрите в каком виде хочет данные ваш аякс модуль на js и создайте шаблон, который это генерит. - perl: CGI::Ajax; use HTML::Template;, bibi, 17:47 , 23-Сен-08 (3)
извените, проблема была не в этом...там надо было изменить JS, то есть нужно было из формы передать в скрипт, и чтобы из перл скрипт был ответ через Яву без перезагрузки страницы... !!! я искал, нашел вот это, и так сделал: <html><head> <TMPL_VAR NAME="PJX"> <script type="text/javascript" src="binding.js"></script> <title>Signup!</title> </head><body> <h1>Signupw!</h1> <TMPL_VAR NAME="NOTS">
<form action="<TMPL_VAR NAME="URL">" method="post"> <p>Please fill in the details to create a new Account.</p> <p>Username: <input type="text" name="user" id="user"/> <em id="baduser"></em></p> <p><input type="button" onClick="javascript:check_username()" value="send" /></p> </form> </body></html>
==========================================================
// @(#) $Id: binding.js 560 2005-12-14 21:57:35Z dom $ // Run code when the page loads. From // http://simon.incutio.com/archive/2004/05/26/addLoadEvent function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { oldonload(); func(); } } } // Set up functions to run when events occur. function installHandlers() { if (!document.getElementById) return; var user = document.getElementById('user'); if (user) { // When the user leaves this element, call the server. user.onchange = function() { check_username(['user'], ['baduser']); return true; // Continue with default action. } } } addLoadEvent( installHandlers ); ПРОБЛЕМА: он почему-то выполняется только раз, больше не хочет, почему?
ВОПРОС: как составить JS который по ссылке которую я привел, и кнопку? и еще хочется спросить, по поводу Аяка, если ставить его везде будет ли быстродействие или может он не нужен? чтоыб его ставить на все страницы?
- perl: CGI::Ajax; use HTML::Template;, angra, 21:30 , 23-Сен-08 (4)
>и еще хочется спросить, по поводу Аяка, если ставить его везде будет >ли быстродействие или может он не нужен? чтоыб его ставить на >все страницы? Если вы задаете такие вопросы, значит работаете как мартышка, узнали что аякс это модно и побежали его всталвять во все щели, при этом нихрена не поняли по сути и пытаетесь с этим работать. Разберитесь с технологией, а уже потом думайте нужна ли она вам. Кстати вопросы типа как сделать и почему не работает отпадут сами собой.
- perl: CGI::Ajax; use HTML::Template;, bibi, 11:04 , 25-Сен-08 (5)
спасибо, я много времени тогда потратил, что сил не хватило что-то делать, когда искал, но JS код не говорит где ошибка, он или работает или не работает!надо будет пересмотреть этот JS код, и напишу ответ...
- perl: CGI::Ajax; use HTML::Template;, angra, 12:12 , 25-Сен-08 (6)
На понимание принципов аякса с нуля нужно полчаса, на что вы потратили время непонятно. Простейшая(но кросс-браузерная) клиентская часть аякса у меня занимает меньше странички кода, на стороне сервера вообще ничего нет, переход от полного обновления страницы к аякс ответам был сделан за счет изменения шаблонов(кстати тоже HTML::Template). Для отладки js есть firefox с плагином firebug.
- perl: CGI::Ajax; use HTML::Template;, bibi, 10:06 , 13-Окт-08 (7)
>На понимание принципов аякса с нуля нужно полчаса, на что вы потратили >время непонятно. Простейшая(но кросс-браузерная) клиентская часть аякса у меня занимает меньше >странички кода, на стороне сервера вообще ничего нет, переход от полного >обновления страницы к аякс ответам был сделан за счет изменения шаблонов(кстати >тоже HTML::Template). Для отладки js есть firefox с плагином firebug. спасибо, ну так а какие 30 мин? где мне взять скрипты JS?? вот например хочу спросить, где взять скрипты JS чтобы поставить их в html сделать кнопки и все остальное, чтобы динамически вносить и выностить информацию, подсчет и все лстальое? в гугле про CGI::Ajax ничего нету, везде про php, или тут одинаково? нашел большие библотеки JS можно реальный пример, как эти библиотеки использовать с CGI::Ajax?
- perl: CGI::Ajax; use HTML::Template;, angra, 00:09 , 16-Окт-08 (8)
Знаете, я не могу понять людей, которые вместо того, чтобы потратить полчаса на изучение сущности технологии тратят десятки часов на поиск примеров, готовых кусков кода, попытки методом тыка получить что-то работающее итд.
|