【问题标题】:Help creating multi page web form with perl CGI使用 perl CGI 帮助创建多页 Web 表单
【发布时间】:2010-12-07 00:37:33
【问题描述】:

我想使用 perl CGI 创建一个多页 Web 表单,该表单根据下拉选择更改页面。我查看了仅按顺序移动的多页 CGI 表单的教程,但我希望我的能够根据选择转到不同的页面。我不确定我应该如何尝试组织我的不同页面并处理切换页面而不会变得混乱。任何关于如何组织和移动页面的建议都会有很大的帮助。

【问题讨论】:

    标签: perl webforms cgi


    【解决方案1】:

    从 CGI 脚本的角度来看,哪个 UI 元素是提交的来源并没有任何区别。重要的是您的脚本接收的名称/值对。

    如果您希望在用户无需单击提交按钮的情况下提交表单,则需要查看 JavaScript,因为这是客户端问题,而不是服务器问题。

    【讨论】:

    • 我希望有一个页面,他们从下拉列表中选择一个值,然后单击下一个黄油,然后根据上一页选择要加载的页面。
    【解决方案2】:

    你看过Catalyst吗? MVC 架构将控制代码——如果你知道如何使用它。

    【讨论】:

    • 也许直接去Catalyst 可能不是最好的答案。
    【解决方案3】:

    【讨论】:

    • 我不需要表单就可以在没有提交按钮的情况下工作。我更多的是寻求有关如何组织我的 CGI 页面的建议,即一旦在一个页面上按下提交按钮,它就可以根据下拉菜单导航到下一页。
    • 好的,为此我个人使用了 jQuery .Ajax 调用。基于下拉和提交,对 cgi 的异步调用将使用特定的名称值/对发送,并基于该名称值对,在服务器端代码上创建特定页面。您可以重定向到您想要访问的页面。 ajax 调用可以选择等待页面创建或不创建。
    【解决方案4】:

    我建议反对尝试将CGI 用于任何新网站。

    我建议使用现在可用的几个框架之一。

    • Dancer

      #!/usr/bin/perl
      use Dancer;
      get '/hi' => sub {
          "Hello World!"
      };
      dance;
      
    • Mojolicious

      #!/usr/bin/env perl
      use Mojolicious::Lite;
      # /
      get '/' => 'index';
      # /*
      get '/:groovy' => sub {
          my $self = shift;
          $self->render_text($self->param('groovy'), layout => 'funky');
      };
      app->start;
      
      
      __DATA__
      @@ index.html.ep
      % layout 'funky';
      Yea baby!
      
      
      @@ layouts/funky.html.ep
      <!doctype html><html>
          <head><title>Funky!</title></head>
          <body><%= content %></body>
      </html>
      
    • Catalyst

      (其中最简单的需要几个文件,但对于大型网站可能值得)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 2020-08-30
      • 2010-11-29
      相关资源
      最近更新 更多