具有可变数量字段的表单

时间:2011-07-09 00:03:56

标签: php

我正试图创造一种市场。市场上的每个项目都有一个类型(即所售商品),价值,数量,卖家名称和ID,所有这些信息都存储在MySQL数据库中。

当用户查看市场时,将返回市场中的所有条目。此外,输入文本字段显示在每个条目的末尾。用户可以在将其留空(0)和最大可用数量之间输入任何数字。

我的问题是,由于每个输入字段都是未知迭代的while循环的结果,我不能简单地将名称硬编码到每个字段中。我已经尝试使用计数器变量来跟踪并创建名称,但它似乎没有起作用。例如:name='.$i++.'

在相关的说明中,为了使程序正常工作,每个字段需要发送两个值 - id(我可以用来查找条目的其余值)和用户希望购买的数量。我一直在输入数量字段之前使用隐藏字段执行此操作。我不确定这是不是一个很好的方法来解决这个问题,但我应该注意到,就我所说的内容而言,没有必要保密。

一切都很清楚,这是一个基本的UI模型: http://img850.imageshack.us/img850/2654/marketui.jpg

注意,以列开头的列包含用户输入的值(即100s是用户输入的文本字段的值)。问题在于,虽然在这个例子中有2行,但实际数字不是确定性的,所以我不能硬编码每个输入字段的名称。

3 个答案:

答案 0 :(得分:11)

  

我的问题是,因为每次输入   字段是while循环的结果   未知的迭代,我不能简单   硬编码每个字段的名称。我有   尝试使用计数器变量来保持   跟踪并制作名称,但事实并非如此   好像在起作用。

将输入命名为:

<input type="text" name="myName[]" />
<input type="text" name="myName[]" />
<input type="text" name="myName[]" />

然后,在您的PHP中,$_POST['myName']$_GET['myName']是一个数组。

记录在案here


  

在相关的说明中,为了   程序上班,每个领域都需要   发送两个值 - id(我可以   用来查找条目的其余部分   值)和用户的数量   希望购买。我一直在做   这前面有一个隐藏的字段   输入数量字段。

听起来不错。

答案 1 :(得分:1)

要扩展@Michael在评论中所说的内容,您需要将name='id'转换为数组,如下所示(PHP):

echo '<input type="text" name="id[' . $i . ']">'

每个循环增加$i

发布表单后,您可以像这样访问此数组:

$_POST['id']['1']

用你想要的任何东西取代['1']

答案 2 :(得分:-2)

对于第一个问题,简单。做:

for ($i = 0; $i < sizeOf($returnedSQLarray); $i++) {
//your display code
....

....
echo("<input name='quantity-$i'>");
}

虽然我仍然无法想象为什么你不能以某种方式在数量的名称属性中使用产品的ID。 for()循环非常适合这种循环,所以如果这真的是你需要处理它的方式,你就会被覆盖。

隐藏的输入很好。非常标准,甚至。任何想要向您的网络服务器发送他们想要的任何数据的人都是如此,所以您应该只关心服务器端安全性。

相关问题