如何使用PHP中的编辑按钮编辑HTML表的特定行?

时间:2015-01-30 10:46:32

标签: php html mysql

以下代码用于从数据库中提取数据并将其显示到HTML表

<?php

//Database connect file.
include 'connect.php';


$get_detail=mysqli_query($con,"SELECT * FROM Wheel_Tag");

if ( mysqli_num_rows($get_detail) > 0)
    {session_start();

echo"<br><br><br><br>
<table border='6' style= 'background-color: #FFFFE0; color: #761a9b; margin: 2 auto;'>
  <thead>
    <tr>

      <th>tag_title</th>
      <th>description</th>
      <th>show_in_welcome</th>
      <th>status</th>

    </tr>
  </thread>
  <tbody>";


      while($row = mysqli_fetch_assoc($get_detail))
        {
            $_SESSION['tag_title'] =$row['tag_title'];
            $_SESSION['description'] =$row['description'];
            $_SESSION['show_in_welcome'] =$row['show_in_welcome'];
            $_SESSION['status']=$row['status'];

          echo
                "<tr>
                    <td>{$_SESSION['tag_title']}</td>
                    <td>{$_SESSION['description']}</td>
                    <td>{$_SESSION['show_in_welcome']}</td>
                    <td>{$row['status']}</td>
                    <td><form action='edit.php' method='POST'><input type='hidden' name='tag_title' value='".$row["tag_title"]."'/><input type='submit' name='submit-btn' value='edit' /></form></td>

  </tr>\n";        
      }

  }

    ?>

这是我的edit.php来编辑行

<?php
 session_start();


 echo"<form action='tag_show.php' method='post'>

 <div id='header'>
 <h1>Edit Your Profile</h1>
</div>
<div style='float:right; width:63%;'>

<br><br><br>

Tag Title<br><input name='tag_title' type='text' value='{$_SESSION['tag_title']}'><br><br>
Desciption<br><input name='description' type='text'value='{$_SESSION['description']}'><br><br>
 Show in welcome<br><input name='show_in_welcome' type='text' value='{$_SESSION['show_in_welcome']}'><br><br>
 Status<br><input name='status' type='text'value='{$_SESSION['status']}'>  <br><br>

 <input name='submit1' type='submit'  value='Update'>

 </form>";


 ?>

我的问题是当我点击编辑按钮时,相应的行值不是以edit.php的形式出现,而是使用会话来获取最后一行值。任何人都可以解决我的问题。当我点击编辑按钮时,我想要特定的行值。

1 个答案:

答案 0 :(得分:0)

您应该将您列表中的表单更改为仅链接:

<td><form action='edit.php' method='POST'><input type='hidden' name='tag_title' value='".$row["tag_title"]."'/><input type='submit' name='submit-btn' value='edit' /></form></td>

为:

<td><a href='edit.php?id={$row['tag_title']}'>{$row["tag_title"]}</a></td>

并且在edit.php页面上创建一个mysql查询以获取有关您正在加载的单个Wheel_Tag的详细信息,例如:

SELECT * FROM Wheel_Tag WHERE tag_title = {$_GET['id']}

并显示元素。

如果你想保存SESSION上的所有内容,那么你就不要在edit.php上再发出一个单个Wheel_Tag的请求,而不是你需要在$ _SESSION中存储一个存储所有Wheel_Tag的数组,而不是链接编辑.php,该数组上带有标记索引。

一般而言,您的代码在最佳做法方面存在很多问题。我建议你开始阅读一本关于php和web的书籍或课程。