Как хранить значения input_tag в переменной? - PullRequest
1 голос
/ 25 мая 2019

Я пытаюсь отправить данные из тега input_tag, когда я нажимаю кнопку с шаблонами в mojolicious.

use Mojolicious::Lite;

get '/' => 'index';

app->start;
__DATA__

@@ index.html.ep
<html lang="es">
  <head>
    <meta charset="utf-8"/>
    <title>Graphs</title>
  </head>
  <body>
    <%= tag div => (id => 'inputs') => begin %>
        <h1>Grafos dirigidos</h1>
        %= input_tag 'nodes', placeholder => '#Nodos', id => 'nodes'
        %= input_tag 'edges', placeholder => '#Edges', id => 'edges'
        %= input_tag 'start', placeholder => 'Start', id => 'start'
        %= submit_button 'Generate', id => 'render', onclick => 'renderGraph()'
        %= tag 'br'
        %= text_area 'dijkstra', cols => 40, rows => 40, id => 'dijkstra'
    <% end %>

Когда я нажимаю кнопку «Сгенерировать», я хочу отправить эти данные во входные данные другому сценарию perl.

1 Ответ

0 голосов
/ 27 мая 2019

Добавьте форму, возьмите входные значения и отправьте их, например, в качестве аргументов скрипту perl.

use Mojolicious::Lite;

get '/' => 'index';

post '/' => sub {
    my $c = shift;

    my ($nodes, $edges, $start) = map { $c->param($_) } qw(nodes edges start);

    system 'script.pl', '--nodes', $nodes, '--edges', $edges, '--start', $start;

    $c->render(text => 'done');
};

app->start;
__DATA__

@@ index.html.ep
<html lang="es">
  <head>
    <meta charset="utf-8"/>
    <title>Graphs</title>
  </head>
  <body>
    <form method="post">
        <%= tag div => (id => 'inputs') => begin %>
            <h1>Grafos dirigidos</h1>
            %= input_tag 'nodes', placeholder => '#Nodos', id => 'nodes'
            %= input_tag 'edges', placeholder => '#Edges', id => 'edges'
            %= input_tag 'start', placeholder => 'Start', id => 'start'
            %= submit_button 'Generate', id => 'render', onclick => 'renderGraph()'
            %= tag 'br'
            %= text_area 'dijkstra', cols => 40, rows => 40, id => 'dijkstra'
        <% end %>
    </form>
...