PHP 如何在表内添加编辑按钮并将数据加载到编辑表单


php how to add edit button inside a table and load data to edit form

我想做什么:在带有编辑按钮的表中加载 MySQL 数据库中的数据。

出了什么问题:单击编辑按钮时,它不会在编辑表单上加载数据。

我尝试过的:我在家里的Firefox上尝试了以下代码,它运行良好。但是在工作中,它无法在 Firefox 的编辑表单中加载数据,并且在 IE 中单击该按钮什么也不做。

<?php
echo '<table id="viewAll">';
            echo '<tr>';
            echo '<th>Product</th>';
            echo '<th>Status</th>';
            echo '<th>Summary</th>';
            echo '<th>Created</th>';
            echo '<th>Updated</th>';
            echo '<th>Edit</th>';
            echo '</tr>';

            while ($data=mysqli_fetch_array($result)){
            echo '<tr align="center">
            <td>'.$data['product'].'</td>
            <td>'.$data['status'].'</td>
            <td align="left">'.$data['summary'].'</td>
            <td>'.$data['created'].'</td>
            <td >'.$data['updated'].'</td>';
            echo "<td><a href='"editForm.php?id=$data[id]'" style='"text-decoration: none'"><input type='"submit'" value='"Edit'" /></a></td>";
            echo '</tr>';

                }#end of while

            }#end of if

echo '</table>';
?>

然后我做:

$id=$_GET['id'];

            $query="SELECT * FROM tickets WHERE id='$id'";

            $result = mysqli_query($db,$query) or die( "My query ($query) generated an error: ".mysql_error());
            $data=mysqli_fetch_array($result);


            mysqli_close($db);

我使用数据数组中的内容将其加载到编辑表单中的字段中。

不幸的是,这在IE中不起作用。 单击编辑按钮不执行任何操作。有人可以告诉我如何解决它吗? 谢谢。

尝试使用这个:

echo "<td><form action='"editForm.php'" method='"get'"><input type='"hidden'" name='"id'" value='"$data['id']'" style='"text-decoration: none'" /><input type='"submit'" value='"Edit'" /></form></td>";

这意味着您仍然可以使用按钮。

另外,我强烈建议如果您不对表格数据使用表格,请找到替代方案,例如 <div> s。

请记住清理您的SQL查询,否则您可能容易受到SQL注入攻击。(例如 $id=$_GET['id']; => $id=mysqli_real_escape_string($conn, $_GET['id']);其中$conn是您的 MySQL 连接对象)。

您可以在Google上搜索任何这些内容。

你不应该使用 <input type="submit" value="edit" name="edit" /> .

只需"<a href='editForm.php?id='".$data['id']."' style='text-decoration: none' />Edit</a>"即可将数据发送到editForm.php页面。

PS:提交按钮只能用于提交表单内的所有表单元素。

更正以

这种方式写入按钮的行

echo "<td><a href='"editForm.php?id=$data[id]'" style='"text-decoration: none'">Edit</a></td>";

单击按钮尝试提交表单。但是您要做的是访问页面 editForm.php

PS:您应该阅读一些有关PHP和html的教程,以学习最佳实践;)

在第一个 PHP 脚本的 while 循环中,回显编辑按钮的行是错误的.
您必须使用连接函数.和引号来获取 $data["id"]
中的值您的线路echo "<td><a href='"editForm.php?id=$data[id]'" style='"text-decoration: none'">Edit</a></td>";必须替换为:

echo "<td><a href='"editForm.php?id=".$data['id']."'" style='"text-decoration: none'">Edit</a></td>";

或者

你可以用jQuery以一种很好的方式做到这一点。尝试阅读本文。