2013-03-28 31 views
0

我有一個PHP腳本加載MYSQL數據庫表中的用戶記錄。根據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"); 

?> 

回答

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" /> 
+0

你生命的救星!非常感謝。但我必須想,爲什麼我不能想到這個..... – user2221253