【问题标题】:HTML input type="hidden" is not binding the right values in foreach loopHTML input type="hidden" 没有在 foreach 循环中绑定正确的值
【发布时间】:2016-10-04 09:48:31
【问题描述】:

我正在使用一种叫做 pike 的语言进行编程,它是一种解释型、面向对象的动态编程语言,其语法类似于 C。pike 代码用于生成 HTML 和 javascript。

现在我的问题。我有一个名为 formularet 的表单和每种语言的提交按钮。我想要做的是在提交表单时将语言 lang 作为参数传递。我认为这可以通过使用隐藏输入来实现,但是每当按下任何提交按钮时,lang 都会设置为 所有 语言,而不仅仅是按下哪个按钮。这基本上是相关代码(languageOrder 是一个包含所有语言的数组):

res+= "<form name=\"formularet\" action=right.html method="POST">"

foreach(languageOrder, string lang) {
    res+= "<input type=hidden name=lang value=\""+lang+"\">\n"
      "<input type=submit name=a2 value=\"Save\">&nbsp;"
}

关于如何为按下的按钮传递语言的任何想法?

【问题讨论】:

  • 您是否尝试过将表单标签包裹在所有按钮周围(在 foreach 循环中这样做)——所以您有很多表单,而不是一个表单中的所有表单?否则,当您提交主表单时,所有数据都会被发布。

标签: html pike


【解决方案1】:

按钮和隐藏输入之间没有关系。

如果您想为特定提交按钮发送特定数据,则将该数据编码到提交按钮中:

<button name="lang" value="en">Save</button>

【讨论】:

  • 但是提交按钮已经有值了。我曾考虑将语言添加到值中,例如:"&lt;input type=submit name=a2 value=\""+lang+" Save\"&gt;&amp;nbsp;" 但我宁愿将其作为 2 个单独的变量。这可能吗?
猜你喜欢
  • 1970-01-01
  • 2017-11-24
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 2015-07-04
  • 2013-04-24
相关资源
最近更新 更多