如何在同一页面内的while循环之外传递php变量

时间:2017-08-29 12:06:55

标签: php global-variables

我遇到了关于在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循环之外传递ID ?我尝试使用全局变量方法,但它不起作用。也许我无法正确使用全局变量。感谢

1 个答案:

答案 0 :(得分:1)

在你的while循环中将值存储到数组中,如下所示:

<?php
            $query="select * from video order by id desc";
            $result=$con->query("SELECT * FROM video ORDER by id DESC") or die($con->error);
            $array = [];            
            while($row=$result->fetch_assoc()){
                $id=$row['id'];
                $heading=$row['heading'];
                $array[$id] = $heading;

        ?>

在你的html表格中这样:

    <table>
            <tr>
                <th>Video ID</th>
                <th>Video Title</th>
                <?php foreach ($array as $key => $val){ ?>
                <td>
                    <input type="number" value="<?php echo $key?>" name="id" readonly></input>
                </td>
                <td>            
                    <input type="text" value="<?php echo $val?>" name="title"></input>
                </td>           
                <?php } ?>
            </tr>
  </table>