根据mysql中的记录更新设置表单元素

时间:2013-03-28 20:18:44

标签: php javascript html

我有一个PHP脚本,用于加载MYSQL数据库表中的用户记录。

此数据库表包含来自网站的其他评论,因为它只是一个评论表。

每个评论或条目都会收到它自己的唯一ID。

用户加载了他/她的评论后。我在加载页面上的表上有一个按钮,允许他们更新该特定记录。

不知怎的,我需要能够从mysql数据库中传递唯一ID(可能通过按钮?)并将其放入表单上的隐藏字段中。

然后,当用户点击提交时,表单将会提交,并更新与该唯一ID相关联的记录,而不会记录其他记录。

我已经尝试了几个小时试图找出这个问题的逻辑解决方案但没有成功(显然)。我希望这对我所需要的内容足够具体,任何帮助/建议都将不胜感激!谢谢!

这是我的代码:

这是加载页面评论的php脚本。

<?php
  $con=mysqli_connect("");
  // Check connection
  if (mysqli_connect_errno())
  {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM comments
        WHERE email='$_SESSION[email]' ORDER BY dt");

echo "<table cellpadding='5' cellspacing='5' border='1' width='auto'>
    <tr>
    <td colspan='5' style='padding-right:15px; padding-bottom:5px; border:1px solid black; text-align:center;'>The Green Panda</td> 
                                                  </tr>
<tr>                                                                   <td colspan='2' style='padding-right:15px; padding-bottom:5px; border:1px solid black; text-align:center; vertical-align:center; background-color: #96b759; color: white;'>Date</td>
                                                <td colspan='2' style='padding-right:15px; padding-bottom:5px; border:1px solid black; text-align:center; vertical-align:center; background-color: #96b759; color: white;'>Email</td>
                                                <td colspan='2' style='padding-right:15px; padding-bottom:5px; border:1px solid black; text-align:center; vertical-align:center; background-color: #96b759; color: white;'>Review</td>
                                                <td colspan='2' style='padding-right:15px; padding-bottom:5px; border:1px solid black; text-align:center; vertical-align:center; background-color: #96b759; color: white;'>Update</td>
                                            </tr>";

                                while($row = mysqli_fetch_array($result))
                                  {
                                      echo "<tr>";
                                      echo "<td colspan='2' style='padding-right:15px; padding-bottom:5px; border:1px solid black; text-align:center; vertical-align:center; background-color: #758F45; color: white;'>" . $row['dt'] . "</td>";
                                      echo "<td colspan='2' style='padding-right:15px; padding-bottom:5px; border:1px solid black; text-align:center; vertical-align:center; background-color: #758F45; color: white;'>" . $row['email'] . "</td>";
                                      echo "<td colspan='2' style='padding-right:15px; padding-bottom:5px; border:1px solid black; text-align:center; vertical-align:center; background-color: #758F45; color: white;'>" . $row['body'] . "</td>";
                                      echo "<td colspan='2' style='padding-right:15px; padding-bottom:5px; padding-left: 10px; border:1px solid black; text-align:center; vertical-align:center; background-color: #758F45; color: white;'><input type='button' value='Update' onclick='showDiv()'/></td>";
                                      echo "</tr>";
                                  }
                                      echo "</table>";
                                ?>

这是html表单

<div id="update-form"> 

                                    <form method="post" action="update.php">

                                        <label>Your Review:</label> 
                                        <input type="text" name="body">

                                        <input type="text" name="id" value="" readonly>

                                        <input type="submit" value="submit" onclick="hideDiv()"> 

                                    </form>

                                </div>

这是处理更新的PHP脚本(外部脚本)

<?php
  $con=mysqli_connect("");
  // Check connection
  if (mysqli_connect_errno())
  {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

  mysqli_query($con,"UPDATE comments SET body= '$_POST[body]'
  WHERE id='$_POST[id]'");

  mysqli_close($con);

  header("location:myReviews.php");

?>

1 个答案:

答案 0 :(得分:0)

在PHP中,将当前记录的id注入每个按钮,如下所示:

<input type='button' value='Update' onclick='showDiv(" . $row['id'] . ")'/>

我假设您的记录存储在$ row ['id']中,但您可以根据需要进行调整。 在“showDiv”javascript方法中,在函数签名中创建一个捕获此传入值的参数。它可能看起来像这样:

function showDiv(recId) {
    //recId is my record id, I can use it now!
    //....more javascript here that does stuff

    //access the input element that you want to put the record id into
    var recordIdElement = document.getElementById("recId");

    //finally, update its value to this new recId that was passed in
    recordIdElement.value = recId;
}

您需要将此值传递给您的id元素。在输入中添加id属性:

<input id="recId" type="text" name="id" value="" readonly>

如果您真的希望它是隐藏元素,请不要使用'type =“text”'。相反,请使用'type =“hidden”'。

你最终会得到这个:

<input id="recId" type="hidden" name="id" />