jQuery & Perl / CGI: добавить контент CGI в jQuery? - PullRequest
0 голосов
/ 27 апреля 2011


Я хотел бы добавить материал в тело, когда я нажимаю на флажок, все в порядке, я нашел, как это сделать.
Моя проблема в том, что я могу просто добавить чистый HTML, но я хочу добавить Perl/CGI.
Я объясняю:

$(function() {
    $('input:checkbox').change(function(){
        var nom = $(this).attr("value");
        if ( $(this).is(':checked') ) {
            $('body').append($("<div id="+nom+">Switch "+nom+"</div>"));
        } 
        else {
            $("#" + nom).remove();
        }
    });

Insetad of "<div id="+nom+">Switch "+nom+"</div>" Могу ли я добавить SwitchGUI->new("switch-rdc-7", 24, 2)?
SwitchGUI - это модуль perl, который я написал, он выполняет файл perl, drawпереключатель, заполните информацию для каждого интерфейса ...
Вот SwitchGUI.pm

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Нет.JQuery работает в браузере пользователя, ваш Perl-код работает на вашем сервере;jQuery не может внедрить Perl-код в текущую страницу и запустить его.Если вам нужно запустить серверный код, который влияет на отображение в браузере, используйте AJAX.

1 голос
/ 27 апреля 2011

Это даже проще, чем вы можете себе представить.Судя по тому, что jQuery, это просто эквивалент document.write при загрузке документа.То, что вам нужно, это URL CGI, чтобы отправить обратно только HTML для этого подразделения.

$.get("get_gui_div.cgi?param=value", function( data ) {
    $( "#" + nameOfMyDiv ).html( data );
  });

В зависимости от сложности вашего CGI, это может быть просто:

#!/usr/local/bin/perl -wT
use strict;
use warnings;
use SwitchGUI;

# ... deal with params ...

print SwitchGUI->new( "switch-rdc-7", 24, 2 );

Но вы должны иметь в виду, что два слоя не могут общатьсямежду собой за пределами HTTP-запросов и ответов.Все, что вы введете в код для основного документа, будет запускать один раз для отправки документа.Любое динамическое обновление потребует отдельного запроса, и вам, вероятно, придется предоставить параметры, чтобы Perl знал, какой тип текста отправлять обратно, и затем он отправит обратно фрагмент HTML , который будет отправлен внизСлой Ajax / jQuery (он также может отправлять JSON).Таким образом, вы должны иметь прямые точки подключения.

  • Новый JavaScript можно отправлять с фрагментом HTML
  • Вы можете сделать так, чтобы ваш слой Perl "вставлял" в него значения.
  • Вы можете настроить что-либо для запуска предоставляемого сервером JavaScript при получении - хотя это не просто

Короче говоря, вы отправляете или отправляете значения Perl и возвращает текст , который может оценить браузер, будь то HTML, JSON, XML или даже JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...