0

MYSQL データベース テーブルにあるユーザー レコードをロードする PHP スクリプトがあります。

このデータベース テーブルは単なるレビュー テーブルであるため、サイトからの他のレビューが含まれています。

各レビューまたはエントリには、独自の一意の 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 に答える