【问题标题】:Multiple forms having same hidden attribute , cant get the actual data多个表单具有相同的隐藏属性,无法获取实际数据
【发布时间】:2012-04-09 11:11:30
【问题描述】:

我在一个页面中有 7 个表单,这些表单具有相同名称但在每种情况下具有不同值的隐藏属性(我使用的是 CodeIgniter):

echo form_open('user/submit');
$attributes2 = array('class' => $imageClass);
echo form_submit($attributes2);
echo form_hidden('id',$id);
echo form_hidden('parent',$paren);
echo form_hidden('side',$side);
form_close();

现在,在提交(从任何表单)时,我得到的 id、parent、side 的值是最后一个(第 7 个)表单。

如何获取实际点击的表单的 ID。

比如说,我点击了 form1 的提交按钮,其中 id = 001 并且在 form7 中 id 设置为 7。

在 post 变量中提交后,我得到 id = 7... 这应该(或者,我想)是 1。

【问题讨论】:

  • 不像你有 7 个表格那样听起来...
  • 我刚刚展示了每个表单的结构。所有表单都具有相同的结构。但具有不同的值。
  • 您没有显示任何结构,只是一小段代码示例。
  • 检查生成的 HTML,尤其是在 </form> 结束标记放置正确的情况下。如果您有 7 个不重叠的表单,则只有您提交的表单的输入会被传输。如果您无法弄清楚,请发布一些 HTML 代码。该问题似乎与php或codeigniter无关。
  • 是的,你绝对会写,问题出在 我没有在 form_close(); 之前放 'echo'谢谢。

标签: php forms codeigniter post attributes


【解决方案1】:

设置隐藏字段的名称属性如:

<input type="hidden" name="form1[yourFieldName]" value="yourFieldValue" />
<input type="hidden" name="form2[yourFieldName]" value="yourFieldValue" />
.
.
.
<input type="hidden" name="form7[yourFieldName]" value="yourFieldValue" />

这样您就可以更灵活地处理每个表单上的隐藏输入。 实际上,您可以将此模式应用于表单的所有字段。

切碎

【讨论】:

    【解决方案2】:

    您在form_close(); 之前错过了echo

    echo form_open('user/submit');
    ...
    echo form_hidden('side', $side);
    echo form_close();                //instead of just `form_close()`
    

    这就是为什么您的表单保持未关闭(或者我应该说是打开的?)并且重叠,成为一个大表单并且只为您提供带有 ID 的最后一个元素。

    【讨论】:

      猜你喜欢
      • 2018-08-05
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 2019-11-30
      • 2021-10-01
      • 1970-01-01
      相关资源
      最近更新 更多