我的页面上有一个数据库记录列表。每条记录都有自己的编辑按钮。当我点击编辑按钮时,会出现一个模态,我可以在表格中进行处理。但我无法弄清楚如何将所选记录添加到我的更新查询中。
现在我有3条带有项目名称的记录。假设我想编辑列表中的第二条记录,我总是从第一条记录中获取值,但我想要第二条记录。所以我想知道如何从选定的记录中获取值。
<!-- Get all projects in the database -->
<?php $result = mysqli_query($connection, "SELECT project_name, project_completion FROM project");
while ($project = mysqli_fetch_assoc($result)){ ?>
<tr>
<td><a href="#" class="btn-sm btn btn-warning"><span class="glyphicon glyphicon-ok"></span></a></td>
<td><a href="milestones.php?project=<?php echo $project["project_name"]; ?>"><?php echo $project["project_name"]; ?></a></td>
<td>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%;"></div>
</div>
</td>
<td><?php echo $project["project_completion"]?>%</td>
<!-- edit button on click to modal -->
<td><a data-toggle="modal" data-target="#myModalEdit" class="btn-sm btn btn-warning"><span class="glyphicon glyphicon-pencil"></span></a>
<!-- remove button -->
<a href="#" class="btn-sm btn btn-danger"><span class="glyphicon glyphicon-remove"></span></a></td>
<!-- Modal -->
<div class="modal fade" id="myModalEdit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel"> Edit project</h4>
</div>
<div class="modal-body">
<!-- do process with selected record -->
</div>
</div>
<div class="modal-footer">
<input type="submit" name="saveProject" value="Add" class="btn btn-success"/>
</div>
</form>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</tr>
<?php } ?><!-- end while -->
答案 0 :(得分:1)
为每个弹出窗口分配不同的ID。
<?php $i++; ?>
<a data-toggle="modal" data-target="#myModalEdit-<?php echo $i;?>" class="btn-sm btn btn-warning"><span class="glyphicon glyphicon-pencil"></span></a>
在while循环开始之前分配$i=0;
。
然后还改变模态弹出ID,如下所示:
<div class="modal fade" id="myModalEdit-<?php echo $i;?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
更新上面的编辑和模态弹出行。然后试试。
答案 1 :(得分:0)
试试这个:
第1步:在您的选择查询中,同时获取auto increment value
(例如 - 任何ID)
第2步:然后设置一个hidden field
,其中包含您的增量ID
例如:
<input type="hidden" name="test" value="<?php echo your id value?>">
提交表单时,您将获得哪一行更新
代码中的一些更改:
<?php $result = mysqli_query($connection, "SELECT project_id,project_name, project_completion FROM project"); ?>
..........................
..........................
<div class="modal-footer">
<form>
<input type="hidden" name="projectid" value="<?php $project['project_id'] ?>">
<input type="submit" name="saveProject" value="Add" class="btn btn-success"/>
</form>
</div>
答案 2 :(得分:0)
您必须使用某种类型的身份证明。例如,假设您有一个按钮的以下代码
<button type="button" class="btn btn-primary editor" data-target=<?php echo $project['id']; ?>>Edit Something</button>
<div id="returnbuffer" style="display: none;"></div>
然后在javascript中你有以下代码
<script>
$(document).ready(function() {
$('editor').click(function() {
$('#returnbuffer').load('editRecord.php?id=' + $(this).attr('data-target'));
});
});
</script>
然后你在一个使用get
协议的目录中有一个php文件并更改数据库。
只是为了解释这里发生了什么,当点击按钮时,javascript运行一个php文件并发送有关应该更改哪条记录(带有什么ID)的信息。
答案 3 :(得分:0)
这有不同的方法。喜欢: -
在php循环中创建记录列表时,应用&#34; onclick&#34;事件到您的编辑按钮,它将记录主键作为参数。当单击编辑按钮时,将调用此函数,通过ajax,您可以获取此记录的数据并显示。在再次保存数据时,调用ajax并保存数据。在这里你必须调用两个ajax方法,即保存和获取数据。
或者您可以使用具有不同Post变量的相同页面。就像当编辑按钮被cliked重新加载相同的页面时,id附加到它url。检查url是否附加了任何记录id变量,如果是,则显示要编辑的表单,进行更改并提交或仅显示记录。