-1

我在一页中处理多个表单。基本上我有一个表单,其中有一些元素,当用户从表单的下拉列表中选择一个类别时,它会根据选择的类别在表单上添加附加元素。当我尝试从用户输入中获取值并将其保存到数据库中时,就会出现我的问题。在摆弄代码之后,我意识到代码在一个 div 标签发生后无法捕获表单的值。让我通过代码来解释。

<form>
<input type="text" name="" >
<select name="category" id="category" onchange="show()">
<option name="Phone" value="Phone" >Smartphone</option>
<option name="Laptop" value="Laptop" >laptop </option>
</select>
 //(show() function will make one of the div tag visible(depending on category selected) and so it will display on screen.)

<div id="phone" style="visibility:hidden">
<form>
<some input elements....>
</form>
</div>

 <div id="laptops" style="visibility:hidden">
 <form>
 <some input elements....>
 </form>
 </div>

 </form>

现在在 php 中,当我尝试使用 $_POST 获取输入值时,我只能访问 id="phone" 的第一个 div 标签的值,但是当我选择笔记本电脑类别时,即使它正确显示在屏幕上,我也没有得到用户输入的价值。我检查了表格,没有错误,因为当我交换表格时,它有同样的问题。

4

1 回答 1

2

您有其他表单包含的表单。这在 HTML 中是不允许的,并且通常会产生不一致和不希望的结果。

您还至少有一个其他错误(您重复)。使用验证器测试您的 HTML 。

我只能访问 id="phone" 的第一个 div 标签的值

在您模糊地说的地方<some input elements....>,您可能有共享名称的输入。不可见元素仍然存在,因此第一个(非法)嵌套子表单中的元素将始终被提交。

当 PHP 填充$_POST和朋友时,只有与给定名称关联的第一组数据将被存储,其余的将被丢弃。(除非您用[]字符命名输入)。

于 2013-04-15T22:10:46.507 回答