【发布时间】:2015-07-03 16:19:23
【问题描述】:
我有一个使用 MySQL 的 PHP 表单并将数据传递到另一个页面,在第一页中,mysql 查询选择了一些记录,然后将其打印在页面上,其中一条记录显然是 ID,它也被打印了在隐藏字段的值中,以便在下一页中使用它
<input type="hidden" name="cat_id" value="<?php echo $row['id']; ?>" />
结果是正确的,我在检查页面输出代码时有10个不同的id
<input type="hidden" name="cat_id" value="1" />
<input type="hidden" name="cat_id" value="2" />
<input type="hidden" name="cat_id" value="3" />
...
当我提交表单时出现问题(我有 1 个表单用于每个数据库结果,所以如果我有 10 个条目,我还有 10 个隐藏字段和 10 个不同的值),即使我提交 2nd 或 10th 形式,在下一页中,$_POST['cat_id'] 的值始终为 1,根据 $_POST 的一般打印
Array
(
[cat_id] => 1
)
有人明白为什么吗?
编辑:添加完整的表单输出脚本以进行澄清
<div class="container">
<div class="row">
<?php
if($c == 0){
?>
<h3>Il catalogo è momentaneamente vuoto.</h3>
<?php
} else {
while($row = $result->fetch_assoc()) {
?>
<div class="col-md-3 col-sm-4 col-xs-12">
<div class="thumbnail">
<div class="caption-img" style="background: url('imgs/thumb.jpg');"></div>
<a href="#" data-toggle="modal" data-target="#myModal">
<div class="caption-link">
<h3><?php echo $row['titolo']; ?></h3>
<span class="glyphicon glyphicon-book"></span>
</div>
</a>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Password</h4>
</div>
<div class="modal-body">
<p>Perfavore inserisci la password necessaria per visualizzare questo elemento</p>
<form action="show.php" method="post">
<input type="password" class="form-control" name="psw" />
<input type="hidden" name="cat_id" value="<?php echo $row['id']; ?>" />
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Chiudi</button>
<button type="submit" class="btn btn-primary" name="view">Prosegui</button>
</form>
</div>
</div>
</div>
</div>
<?php
}
}
?>
</div>
</div>
【问题讨论】:
-
如果页面上有多个表单,则应该有多个
<form>input fields here, submit here</form>.. 如果您只有 1 个<form>,那么您的所有输入字段都将被提交 -
在他的问题中,他说他每个条目都有 1 个表格,所以 10 个表格
-
@Ciccio - 我知道他这样做了,但是如果他正确打开和关闭表单,他可能不会遇到这个问题。我想另一个问题可能是嵌套表单
-
您提交的表单是否带有一些 JS 验证?您的 JS 验证是否有可能提交第一个表单而不是预期的表单?
-
是的,如果我们在这里看到完整的代码,我想我们可以更轻松地提供帮助。