Катализатор $ c-> req-> params пуст? - PullRequest
2 голосов
/ 08 февраля 2012

Попытка Катализировать некоторые страницы прототипа с полями формы.Кажется, мой контроллер Catalyst не получает входные данные из формы при ее отправке.

Я попытался уменьшить шаблон и контроллер настолько, насколько смог, и все еще вижу эту проблему.

шаблон просто:

<body>
    <form action="/minimal-testing" method="get">
          <select id="select02">
            <option value="cat1">cat1</option>
            <option value="cat2">cat2</option>
          </select>
          <select id="select06">
            <option value="1">1</option>
            <option value="2">2</option>
          </select>
        <input type="submit" value="submit" title="submit" />
    </form>
    <p> Hello, params says: </p>
    <p>
      [% FOR param IN params ; param.key ; ' = ' ; param.value; END %]
    </p>
</body>

Контроллер:

sub minimal_testing :Path('minimal-testing') :Args(0) {
    use Data::Dumper;
    my ( $self, $c ) = @_;
    $c->stash(params=>$c->req->params);
    $c->stash(template => "dynamic/minimal-testing.tt");
    $c->log->debug(Dumper($c->request->params));
}

Когда я просматриваю форму, выбираю из опций выбора и отправляю, мой журнал отладки просто говорит

[debug] $VAR1 = {};

Очевидно, я что-то упускаю настолько очевидное, что просто не вижу этого ... пожалуйста, просветите меня.

1 Ответ

2 голосов
/ 09 февраля 2012

Ты прав.Я подозреваю, что ваш журнал Catalyst должен дать вам понять, что здесь происходит не так.Проблема не в Catalyst.

По сути, это некорректный HTML-код - для ввода каждой формы нужен параметр name, который можно передать обратно на сервер в POST.

      <select id="select02" name="select02">
        <option value="cat1">cat1</option>
        <option value="cat2">cat2</option>
      </select>

id для CSS, name для обработки FORM.

Попробуйте, и вы должны получить регистрацию, например:

[11:31:28.499 16014:debug] Body Parameters are:

.-------------------+----------------------------------------.
| Parameter         | Value                                  |
+-------------------+----------------------------------------+
| select02          | cat1                                   |
| select06          | 2                                      |
'-------------------+----------------------------------------'

Надеюсь, что поможет.

...