【问题标题】:How to capture form text fields as an array like a radio group如何将表单文本字段捕获为数组,如无线电组
【发布时间】:2012-10-17 20:31:09
【问题描述】:

我希望我能正确地提出这个问题,如果没有,请指导我如何修复它。我已经把它作为一个帖子删除了一次......

我的目标是提交一个带有一个下拉列表的表单,其中包含 100、200、300 之类的数字(您想订购多少 T 恤)...然后根据从下拉列表中选择的内容有一个一系列文本框(用于放置号码),这些文本框的总和必须与您要从下拉列表中订购的选定衬衫数量相加。

我的想法是在一个数组中捕获所有这些文本字段,并将它们发送到要添加的函数...

有人可以帮我吗?

这是我知道不起作用的表单代码,但我希望它能够工作......

<form>

  <label>
    <input type="checkbox" name="PoloDesign" value="100" id="PoloDesign_0" />
    100</label>
  <br />
  <label>
    <input type="checkbox" name="PoloDesign" value="200" id="PoloDesign_1" />
    200</label>
  <br />
  <label>
    <input type="checkbox" name="PoloDesign" value="300" id="PoloDesign_2" />
    300</label>
  <br />


  <input type="text" name="name[1]" id="name1" value="{$name1}"/>
  <input type="text" name="name[1]" id="name2" value="{$name2}"/>
  <input type="text" name="name[1]" id="name3" value="{$name3}"/>
  <input type="text" name="name[1]" id="name4" value="{$name4}"/>
  <input type="text" name="name[1]" id="name5" value="{$name5}"/>
  <input type="text" name="name[1]" id="name6" value="{$name6}"/>
  <input type="text" name="name[1]" id="name7" value="{$name7}"/>

  <input type="submit" value="submit"/>


</form>

【问题讨论】:

    标签: php arrays forms


    【解决方案1】:

    只需更改每个

    name="name[1]"
    

    name="name[]"
    

    然后将字段作为数组发布,您可以在 PHP 中遍历

    if (is_array($_POST['name']):
        foreach ($_POST['name'] as $key=>$field):
            // do something here
             $yourKey = $key +1;
             $yourValue = $field;
    

    【讨论】:

    • 太好了,谢谢。我确实尝试将数字放在数组括号内......但无论出于何种原因,它从未在另一端出现......如果你愿意,我想知道另一件事。我应该把 {$name[1]} 放在 {value} 里面吗?如果是这样,PHP 怎么知道将什么值放在哪里?
    • Php 从 0,1,2 开始对数组键进行编号...按照字段发布的顺序!
    【解决方案2】:

    我稍微修改了你的代码,并尝试使用正则表达式使其工作:

    <?php
      $name_array = preg_grep('/name[1-9]*/', $_GET);
    ?>
    

    因此,基本上它会检查所有提交的变量,并从所有以名称开头并以数字结尾的变量创建数组。因此,表单部分应更改为如下所示:

    <input type="text" name="name1" id="name1" value="{$name1}"/>
    <input type="text" name="name2" id="name2" value="{$name2}"/>
    <input type="text" name="name3" id="name3" value="{$name3}"/>
    <input type="text" name="name4" id="name4" value="{$name4}"/>
    <input type="text" name="name5" id="name5" value="{$name5}"/>
    <input type="text" name="name6" id="name6" value="{$name6}"/>
    <input type="text" name="name7" id="name7" value="{$name7}"/>
    

    我在 Apache2 和 PHP 5.3 上测试过

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多