繁体   English   中英

带有内联链接的PHP SQL表编辑行

[英]PHP SQL Table Edit row with inline link

我有一个工作正常的表,但是,无论单击哪个编辑链接,它当前都会将用户发送到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。

提前致谢。

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>

您需要通过数据过滤来改进此伪代码,添加更多字段,包括数据库连接等。

我认为您需要一个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访问它们。

最后,构造一个更新函数,使用给定字段ID的AJAX发送数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM