-3

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

我的目标是提交一个带有一个下拉列表的表单,其中包含 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>
4

2 回答 2

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;
于 2012-10-17T20:33:56.860 回答
0

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

<?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 上测试过

于 2012-10-17T20:47:24.690 回答