【问题标题】:Multiple hidden input with same name, always retrieve the last input [duplicate]具有相同名称的多个隐藏输入,始终检索最后一个输入[重复]
【发布时间】:2019-01-02 02:33:36
【问题描述】:
   foreach ($graphEdge as $graphNode) {
    echo
      "<div class='form-check mb-3'>" .
        "<input type='radio' name='fb_profile' class='form-check-input' value='".$graphNode['name']."'>" .
        "<img class='mr-2' src='" . $graphNode['picture']['url'] . "'>" . 
        "<label class='form-check-label' for='fb_profile'>" . 
        $graphNode['name'] . '</label>' . 
      "</div>";

    echo "<input type='hidden' name='fb_access_token' value='" . $graphNode['access_token'] . "'>";
    echo "<input type='hidden' name='fb_id' value='" . $graphNode['id'] . "'>";
    }

正如标题所暗示的,我有 3 个名为“fb_id”的隐藏输入,当我在表单中发布时,它总是会检索最后一个隐藏输入,但 fb_access_token 将始终正确发布。

【问题讨论】:

  • 名称应该是唯一的。
  • 如果输入名称相同,浏览器/服务器应该如何区分输入?使用 Nikita 所述的数组
  • 这是预期行为,请尝试使用输入名称数组,例如 name="fb_id[]"
  • 问题是?正如所写,它只是一个事实陈述
  • 这些是隐藏字段,因此没有用户选择。如果您希望用户主动选择某些内容,那么就不要使用隐藏字段来开始,这没有多大意义。

标签: php html


【解决方案1】:

好的。正如我从对话中看到的,您想要获取值,这取决于radio。 你可以这样做:

foreach ($graphEdge as $graphNode) {
    echo
        "<div class='form-check mb-3'>" .
            "<input type='radio' name='fb_profile' class='form-check-input' value='".$graphNode['name']."'>" .
            "<img class='mr-2' src='" . $graphNode['picture']['url'] . "'>" . 
            "<label class='form-check-label' for='fb_profile'>" . 
    $graphNode['name'] . '</label>' . 
        "</div>";

   echo "<input type='hidden' name='fb_access_token[".$graphNode['name']."]' value='" . $graphNode['access_token'] . "'>";
   echo "<input type='hidden' name='fb_id[".$graphNode['name']."]' value='" . $graphNode['id'] . "'>";
}

然后您可以像这样通过radio 值获取选定的值(假设您的表单发送 POST 请求):

$profile = $_POST['fb_profile'];
$accessToken = $_POST['fb_access_token'][$profile];
$id = $_POST['fb_id'][$profile];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 2022-07-13
    • 2014-11-28
    相关资源
    最近更新 更多