1

如果可能的话,我想大致解释一下我应该如何解决这个问题,这样我就可以尝试自己直接解决这个问题。照原样,我在思考解决方案时遇到了麻烦。

我正在从包含图书信息(ISBN、价格、条件等)的表单中传递值。它与一本书一起工作得很好。所有这些表单信息都放在一个 div 中。

我最近实现了一个简单的 JS 'duplicate' 函数,它复制 div 中的所有表单数据,以便用户可以添加另一本书或多本其他书籍。问题似乎是我复制的原始 div 中的所有名称值都没有改变,或者不接受它们现在应该包含多个值。

我应该如何让每本“书”都有自己的价值观?每个输入中的名称是否应该是数组(例如 book[0]['price']),然后每次添加另一个 div 时,JS 都会更改名称(例如 book[1]['price'])?

我之所以这样问,是因为我真的不确定这是否可行,而且我宁愿在更改表单工作的(已经有效的)方式之前听取更有经验的意见。如果需要更多信息,请询问,我会提供。

4

2 回答 2

1
<div id="book1">
<input type="text" name="price[]" id="price1" />
<input type="text" name="isbn[]" id="isbn1" />
</div>

使用js复制并仅更新ID(因为每个ID都应该是唯一的),

<div id="book2">
<input type="text" name="price[]" id="price2" />
<input type="text" name="isbn[]" id="isbn2" />
</div>

现在$_POST['price']应该给你价格数组​​,isbn的每个对应元素应该给你那本书的isbn

服务器端就像,

$price = $_POST['price'];
$isbn = $_POST['isbn'];

foreach( $price as $key => $value ) {
  echo "The price is ".$value." and isbn is ".$isbn[$key];
}

这是我会去的一种方式..

于 2012-07-10T20:26:13.223 回答
1

您在 html 表单中指定的名称可以是数组。例如价格[]

<input type="text" name="price[]">

现在,如果您有多个名为“price[]”的表单输入,那没关系。事实上,这使它很有用。

现在在 php 中,您可以使用以下方法轻松访问每个名称

$_POST['price'][$i] //where $i is 0,1,2,3.....

基本上,它的作用是在 $_POST 数组下为“价格”创建一个数组。您也可以轻松地遍历 $i 并获取其他字段的值。

这回答了您的陈述“或者不接受它们现在应该包含多个值。”

于 2012-07-10T20:27:44.853 回答