Perl 催化剂$c->;需求->;是空的吗?

Perl 催化剂$c->;需求->;是空的吗?,perl,forms,parameters,catalyst,Perl,Forms,Parameters,Catalyst,试图用表单字段催化一些原型页面。提交表单时,我的Catalyst controller似乎没有从表单中获取输入 我已经尝试尽可能减少模板和控制器,但我仍然遇到这个问题 模板仅为: <body> <form action="/minimal-testing" method="get"> <select id="select02"> <option value="cat1">cat1</opti

试图用表单字段催化一些原型页面。提交表单时,我的Catalyst controller似乎没有从表单中获取输入

我已经尝试尽可能减少模板和控制器,但我仍然遇到这个问题

模板仅为:

<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>
当我浏览表单,从选择选项中选择并提交时,我的调试日志只显示

[debug]$VAR1={}


很明显,我错过了一些很明显的东西,我只是没有看到。。。请开导我。

你完全正确。我想你的Catalyst日志应该能告诉你这里出了什么问题。问题不在于催化剂

基本上,它是格式不正确的HTML—表单输入都需要一个
name
参数,可以在POST中传递回服务器

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

希望有帮助。

太棒了。非常感谢你。我知道这一定是非常明显的事情!我很久没有弄乱形体的内部了。。。“id代表CSS,名称代表表单处理”-我会记得那个咒语;-)不客气,很高兴能帮上忙。更准确的说法可能是“id用于DOM操作,name用于表单处理”。顺便说一下,你可能想考虑一下答案,那就是SO系统。干杯
      <select id="select02" name="select02">
        <option value="cat1">cat1</option>
        <option value="cat2">cat2</option>
      </select>
[11:31:28.499 16014:debug] Body Parameters are:

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