0

我有一个 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");

?>
4

1 回答 1

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" />
于 2013-03-28T20:28:57.783 回答