我试图使用modal作为用户编辑MySQL数据库中数据的简单方法。似乎只有我的SELECT语句中检索到的第一行可用于模态,我不明白为什么。换句话说,想象一下有几列的表,第一列是客户的名字。我的目标是能够单击一个名称,显示一个带有表单的模态,然后传递该表单的结果以使用PHP更新数据库。但是,无论我点击哪个名称,都只传递与第一个结果行相关的值。
表'项目'包括表格中所有行的信息。
$personID
通过GET
传递,是选择特定员工客户的方法。
模式div
包含在PHP while
子句中。
模态中包含的表单将信息传递给基本的PHP更新脚本。
非常感谢, 麦克
PHP选择Stmt:
<?php
$query = "SELECT * FROM item WHERE personID = $personID";
$result = mysql_query($query);
while($info=mysql_fetch_array($result)){
$itemID = $info['itemID'];
?>
链接(许多之一;我已经缩写了这一部分):
<div class='row-fluid'>
<div class='span3'>
<a href="#customerModal" data-toggle="modal"><?php echo($info['itemCustomer']); ?></a>
</div>
</div>
模态:
<div id="customerModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel"><?php echo($info['itemID']); ?></h3>
</div>
<div class="modal-body">
<form action='pipelineEdit.php' method='post'>
<input placeholder='Customer Name' style='width:50%' type='text' name='editValue' id='editValue'>
<input type='hidden' value='itemCustomer' name='editField' id='editField'>
<input type='hidden' value='<?php echo($info['itemID']); ?>' name='itemID' id='itemID'>
<input type='hidden' value='<?php echo($personID); ?>' name='personID' id='personID'>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary">Save changes</button>
</div>
</form>
</div>
PHP while
结束于模态之后:
<?php } ?>
答案 0 :(得分:4)
您正在打印具有相同ID = customerModal
的多个divID必须是唯一的,因此链接只会打开循环中打印的第一个模态。
变化:
<div id="customerModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
为:
<div id="customerModal<?php echo $info['itemID']; ?>" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
和
<a href="#customerModal" data-toggle="modal">
为:
<a href="#customerModal<?php echo $info['itemID']; ?>" data-toggle="modal">
答案 1 :(得分:0)
使用
while($info=mysql_fetch_array($result)){
$itemID = $info['itemID'];
表示您继续分配给$ itemId。最后,$ itemId只保存最后指定的值。
答案 2 :(得分:0)
您的模态标识为id。在jQuery中,只会引用具有该id的第一个DOM元素。要引用正确的模式,可以将数据库id附加到元素id,例如:
<div id="customerModal<?php echo $info['itemID']; ?>"
链接也需要附加:
<a href="#customerModal<?php echo $info['itemID']; ?>" data-toggle="modal">
有关使用ID选择器查看jQuery文档的更多信息 here