The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"perl: CGI::Ajax; use HTML::Template;"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"perl: CGI::Ajax; use HTML::Template;"  
Сообщение от bibi on 22-Сен-08, 13:59 
посмотрел пример http://www.perl.com/pub/a/2006/03/02/ajax_and_perl.html ...

там используется CGI, html прямо в нем хранится

захотел на одну тсраницу где выводиться много данных использовать тоже AJAX

проблема: в том что странциа полностью обновляется при использовании шаблона HTML::Template, по этому нету эффективности от использовани perl + CGI::Ajax + use HTML::Template !!

сделал все так как по ссылке,  только добавил шаблон... без шаблона, все нормально, обновляет часть страницы, то есть всё работает

кто использовал, покажите пример?!

или какой шаблон использовать?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "perl: CGI::Ajax; use HTML::Template;"  
Сообщение от bibi on 22-Сен-08, 14:08 
вот код забыл написать

#!/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 - такой как по ссылке, то есть проблема не в нем, скорее всего

кто знает подскжаите хочется добить это дело!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "perl: CGI::Ajax; use HTML::Template;"  
Сообщение от angra (ok) on 22-Сен-08, 21:57 
с CGI::Ajax не работал, так как простейший аякс занимает меньше странички на js и вообще никакого кода на стороне сервера. Посмотрите в каком виде хочет данные ваш аякс модуль на js и создайте шаблон, который это генерит.  

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "perl: CGI::Ajax; use HTML::Template;"  
Сообщение от bibi on 23-Сен-08, 17:47 
извените, проблема была не в этом...

там надо было изменить 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 который по ссылке которую я привел, и кнопку?

и еще хочется спросить, по поводу Аяка, если ставить его везде будет ли быстродействие или может он не нужен? чтоыб его ставить на все страницы?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "perl: CGI::Ajax; use HTML::Template;"  
Сообщение от angra (ok) on 23-Сен-08, 21:30 
>и еще хочется спросить, по поводу Аяка, если ставить его везде будет
>ли быстродействие или может он не нужен? чтоыб его ставить на
>все страницы?

Если вы задаете такие вопросы, значит работаете как мартышка, узнали что аякс это модно и побежали его всталвять во все щели, при этом нихрена не поняли по сути и пытаетесь с этим работать. Разберитесь с технологией, а уже потом думайте нужна ли она вам. Кстати вопросы типа как сделать и почему не работает отпадут сами собой.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "perl: CGI::Ajax; use HTML::Template;"  
Сообщение от bibi on 25-Сен-08, 11:04 
спасибо, я много времени тогда потратил, что сил не хватило что-то делать, когда искал, но JS код не говорит где ошибка, он или работает или не работает!

надо будет пересмотреть этот JS код, и напишу ответ...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "perl: CGI::Ajax; use HTML::Template;"  
Сообщение от angra (ok) on 25-Сен-08, 12:12 
На понимание принципов аякса с нуля нужно полчаса, на что вы потратили время непонятно. Простейшая(но кросс-браузерная) клиентская часть аякса у меня занимает меньше странички кода, на стороне сервера вообще ничего нет, переход от полного обновления страницы к аякс ответам был сделан за счет изменения шаблонов(кстати тоже HTML::Template). Для отладки js есть firefox с плагином firebug.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "perl: CGI::Ajax; use HTML::Template;"  
Сообщение от bibi on 13-Окт-08, 10:06 
>На понимание принципов аякса с нуля нужно полчаса, на что вы потратили
>время непонятно. Простейшая(но кросс-браузерная) клиентская часть аякса у меня занимает меньше
>странички кода, на стороне сервера вообще ничего нет, переход от полного
>обновления страницы к аякс ответам был сделан за счет изменения шаблонов(кстати
>тоже HTML::Template). Для отладки js есть firefox с плагином firebug.

спасибо, ну так а  какие 30 мин? где мне взять скрипты JS??

вот например хочу спросить, где взять скрипты JS чтобы поставить их в html сделать кнопки и все остальное, чтобы динамически вносить и выностить информацию, подсчет и все лстальое?

в гугле про CGI::Ajax ничего нету, везде про php, или тут одинаково?

нашел большие библотеки JS
можно реальный пример, как эти библиотеки использовать с CGI::Ajax?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "perl: CGI::Ajax; use HTML::Template;"  
Сообщение от angra (ok) on 16-Окт-08, 00:09 
Знаете, я не могу понять людей, которые вместо того, чтобы потратить полчаса на изучение сущности технологии тратят десятки часов на поиск примеров, готовых кусков кода, попытки методом тыка получить что-то работающее итд.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "perl: CGI::Ajax; use HTML::Template;"  
Сообщение от bibi on 05-Ноя-08, 17:22 
http://biowiki.org/DojoPerlTutorial
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру