我有一个表格工作正常,但是,无论点击哪个编辑链接,它目前都会将用户发送到phpmyedit屏幕。我想要完成的是单击内联链接以直接编辑该特定行或'id'。以下是我的代码示例:
$result = mysqli_query($con,"SELECT * FROM `TABLE_NAME` ORDER BY ID DESC");
echo "<table>";
echo "<table border='1' style='margin:200px 200px 500px 50px;'>
<tr>
<th>ID</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>TABLE HEADER</th>
<th>Edit</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['ID'] . "</td>";
echo "<td>" . $row['rowName'] . "</td>";
echo "<td>" . $row['rowName'] . "</td>";
echo "<td>" . $row['rowName'] . "</td>";
echo "<td>" . $row['rowName'] . "</td>";
echo "<td>" . $row['rowName'] . "</td>";
echo "<td>" . $row['rowName'] . "</td>";
echo "<td>" . $row['rowName'] . "</td>";
echo "<td>" . $row['rowName'] . "</td>";
echo "<td><a href='http://phpmyedit.com/editexample".$row['']."'>Edit</a></td><tr>";
echo "</tr>";
}
echo "</table>";
?>
所以基本上我只需要允许编辑链接直接在其被点击的行中编辑该ID。
**编辑:我正在使用PHPMyEdit编辑/更新数据库表中的数据,并希望继续使用PHPMyEdit。
提前致谢。
答案 0 :(得分:2)
echo "<td><a href='edit.php?id=".$row['ID']."'>Edit</a></td><tr>";
在edit.php中,您必须创建将从数据库加载哪些值的表单:
<?php
if (isset($_POST['fieldName']){
mysqli_query($con, 'UPDATE `TABLE_NAME` SET fieldName='.$_POST['fieldName'].' WHERE ID='.intval($_GET['id']);
exit;
}
$row = mysqli_fetch_assoc(mysqli_query($con, 'SELECT * FROM `TABLE_NAME` WHERE ID='.intval($_GET['id']))); ?>
<form method="POST">
<input type="text" name="fieldName" value="<?php echo $row['fieldName'] ?>">
<!-- -->
<input type="submit" value="save edit">
</form>
您需要通过数据过滤改进此伪代码,添加更多字段,包括数据库连接等。
答案 1 :(得分:0)
我认为你需要一个javascript代码来触发编辑模式。
但首先,您需要在执行while循环时为表字段提供唯一ID。
$counter=1;
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td><div id='ID_$counter'>" . $row['ID'] . "</div></td>";
echo "<td><div id='TH1_$counter'>" . $row['rowName'] . "</div></td>";
echo "<td><div id='TH2_$counter'>" . $row['rowName'] . "</div></td>";
...
echo "<td><button onclick='triggerEdit($counter)'>Edit this row</button></td><tr>";
$counter++;
}
然后使用javascript创建编辑和更新功能:
function triggerEdit(rowNumber) {
document.getElementById('id_'+rowNumber).innerHTML = "<input type=text id='SOMEIDx'><button onclick='update(SOME_IDx)'>update</button>";
document.getElementById('TH1_'+rowNumber).innerHTML = "<input type=text id='SOMEIDx2'><button onclick='update(SOME_IDx2)'>update</button>";
// don't forget to assign the IDs
}
如果您想要旧值,可以在更改之前使用document.getElementById()。innerHTML访问它们。
最后,构造一个更新函数,使用AJAX发送数据,给定字段的ID。