【发布时间】:2017-08-29 12:06:55
【问题描述】:
我遇到了关于在 PHP 循环之外传递 php 变量的小问题。我在同一页面中创建了表格和表单。显示第一个表,并出现表单中的通过编辑链接弹出对话框。单击编辑链接后,我想将动态 ID 传递给对话框。我的页面包含一个 php 表格和表单。
PHP/HTML 表格
<table>
<th>ID</th>
<th>Title</th>
<th>Edit</th>
<?php
$query="select * from video order by id desc";
$result=$con->query("SELECT * FROM video ORDER by id DESC") or die($con->error);
while($row=$result->fetch_assoc()){
$id=$row['id'];
$heading=$row['heading'];
?>
<tr>
<td>
<?php echo $id ?>
</td>
<td>
<?php echo $heading ?>
</td>
<td>
<a href="#modal2" id="pop_button">Edit</a>
</td>
</tr>
<?php } ?>
</table>
在这个表之后,我想以这种形式显示数据
对话框中的 PHP 表单
<div class="remodal" data-remodal-id="modal2" role="dialog" aria-labelledby="modal2Title" aria-describedby="modal2Desc">
<form action="" method="POST" enctype="multipart/form-data">
<table>
<tr>
<th>Video ID</th>
<td>
<input type="number" value="<?php echo $id?>" name="id" readonly></input>
</td>
</tr>
<tr>
<th>Video Title</th>
<td>
<input type="text" value="<?php echo $heading?>" name="title"></input>
</td>
</tr>
</table>
</form>
</div>
我知道 while 循环无法连接到弹出对话框表单,所以我的代码只打印第一行的数据。如果我在 while 循环中包含整个代码,我的表结构就会变得一团糟。 在 while 循环之外传递 ID 有什么想法吗?我尝试使用全局变量方法,但它不起作用。也许我无法正确使用全局变量。谢谢
【问题讨论】:
-
您是否尝试过第二个循环来制作所有弹出窗口?
-
您是否创建了与您从选择中获得的记录数量一样多的模式?
-
在循环之后,你在循环中赋值的变量,当然只有 last 它们被赋值的值。但是你可以将这些数据放在一个 array 中,这样你就可以在你的 while 循环之后再次循环它。但是您还必须修改用于 HTML 元素的 id,因为 id 在 HTML 文档中必须是唯一的。
-
@FMashiro 是对的,尝试第二个循环。您可以使用第一个循环 array[$id] = $heading 创建一个数组,然后再遍历它。
-
@FMashiro 弹出窗口的第二个循环对我不起作用,因为第一个循环 ID 是主输出。在ID的基础上,它应该显示mysql数据。
标签: php global-variables