【问题标题】:How I get values from form php我如何从表单 php 中获取值
【发布时间】:2018-10-03 05:17:29
【问题描述】:

很抱歉这个问题,但我不知道如何解决我的问题。
我有一个标准形式的带有预定义输入名称的表单,我还有其他带有任何随机名称的输入,例如:

<form action="">
    <!-- required inputs -->
    <input type="text" name="name" value="Ian" />
    <input type="text" name="surname" value="Dope" />
    <input type="tel" name="phone" value="782910456" />
    <input type="tel" name="comment" value="" />
    <!-- optional inputs -->
    <input type="hidden" name="conact_amount" value="1" />
    <input type="hidden" name="value1" value="2" />
    <input type="hidden" name="other_filed" value="3" />
    <input type="hidden" name="different_name" value="4" />
</form>

在上面的表格中,必需的输入将具有相同的名称,而可选的输入可以是不同名称的任何排列。

我想保留必填字段,但我不知道名称的可选字段需要放在一个名为 comment 的数组中。

【问题讨论】:

  • 不,你把我弄丢了。
  • 您将如何处理那些您不知道名称的输入?让表单发布它想要的任何字段似乎很奇怪。无论如何,您可以遍历字段并检查名称以查看它是否是“必需”字段。然后你就可以对他们做你想做的事了。
  • 另外,如果需要,考虑在输入中添加 HTML5 required 属性吗?
  • 您可以在提交之前使用 JavaScript 将输入动态添加到表单中,并使用 elem.setAttribute("name", "input-name-here"); 添加自定义名称。 MDN 有很好的文档说明如何做到这一点。
  • 另外,如果您在后端寻求帮助,请查看this answer

标签: php forms


【解决方案1】:

这样迭代发布的数组怎么样:

$required = ['name', 'surname', 'phone', 'comment'];
$comment = array();
foreach ($_POST as $key => $value) {
    if (!in_array(strtolower($key), $required)) {
        $comment[$key] = $value;
    }
}

这假设您提前知道必填字段的名称。
它简单地遍历发布的数组,确定它是否是具有设置的name 属性的必填字段,如果不是,它会将其添加到新数组 - $comment

当然,这假设我对您的问题的理解是正确的。

【讨论】:

    猜你喜欢
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    相关资源
    最近更新 更多