2016-09-17 103 views
0

我有一個sql數據庫表,我使用HTML表格在網頁上顯示。該表的最後一列是一個「編輯」選項,我希望通過該選項提示用戶更新數據。在窗體中通過POST方法傳遞表單值更新

爲此我想傳遞用戶選擇的行ID進行編輯的數據值。

我的顯示錶具有下面的代碼

<?php 
    while($row = mysql_fetch_array($fetched_value, MYSQL_ASSOC)) 
     { 
      echo 
       "<tr> 
        <td>{$row['name']}</td> 
        <td>{$row['email_id']}</td> 
        <td>{$row['mobile_number']}</td>; 
        echo '<td><button id="edit_button" name="edit_button" type="submit" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>'; 
       echo "</tr>\n"; 
     } 
?> 

其中,

<?php $fetched_value = mysql_query($fetch_query, $conn); ?> 

請注意,在每一行我有一個編輯按鈕,我想用於進一步的結束處理。

我想打電話給(通過POST法)本地php文件,說update-data.php,其中會有代碼接受POST版數據,顯示該表同時也充液形式的空間。

但是我無法使用POST方法將數據傳遞給此更新的PHP文件。

您能否建議一種方法來傳遞更新鏈接被點擊的那些特定數據值?

+0

你的代碼有很多錯誤的東西。 – Phiter

+0

@PhiterFernandes謝謝。但是,你能更具體一點嗎?數據按預期顯示在我的頁面中。 (我知道mysql函數已被棄用,我只用它們來讓我的轉換變得更流暢。)(我是初學者) – ABor

+2

你的第一個'echo'你並沒有關閉字符串封裝。如果您要爲每個字段使用「提交」按鈕,則需要爲其提交的每個字段提供一個「表單」。您可以使用加載編輯頁面的鏈接。 'Edit'。 – chris85

回答

0

你可以像這樣做echo '<td><button onclick="editData()" type="button" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>';。那麼你可以通過ajax在editData()中傳遞數據。 Goodluck

1

正如chris85所指出的那樣,除非您願意將每一行包含在「FORM」中或使用「JS」,否則GET將成爲您的選擇。

GET

生成鏈接,而不是一個按鈕:<a href="update-data.php?id={$row[id]}&action=edit">Edit</a>

你可以讓他們通過CSS看起來像按鈕。

您可以在update-data.php中獲取其餘數據以預先填寫表單或向其發送擴展GET查詢,但請注意:如果您希望傳遞任何類型的敏感數據,請將其全部通過獲取 - 不是方法。

FORM

裹在窗體的每一行:

echo 
       " 
       <form method="post" action="update-data.php"> 
       <input type="hidden" name="name" value="{$row['name']}"> 
       <input type="hidden" name="email_id" value="{$row['email_id']}"> 
       <input type="hidden" name="mobile_number" value="{$row['mobile_number']}"> 
       <input type="hidden" name="id" value="{$row['id']}"> 
       <input type="hidden" name="action" value="edit"> 
       <tr> 
        <td>{$row['name']}</td> 
        <td>{$row['email_id']}</td> 
        <td>{$row['mobile_number']}</td>; 
        echo '<td><button id="edit_button" name="edit_button" type="submit" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>'; 
       echo "</tr>\n</form>"; 

在這裏,你將不得不所有發送的值。和GET選項一樣,無論你做什麼,你都必須發送一個唯一的行標識符(假設你想要更新條目或者做其他任何事情),所以我認爲你有一個自動增量列'id',因爲它是最共同的事情伊莫。如果不是這種情況,請將其更改爲唯一的行標識符。

JS

第三選項是一個onclick屬性到您提交按鈕鏈接添加到提交一個隱藏/ genereated形式填充字段如上面例子中一個js函數。這可能看起來像這樣:

<?php echo 
       " 
       <tr> 
        <td>{$row['name']}</td> 
        <td>{$row['email_id']}</td> 
        <td>{$row['mobile_number']}</td>; 
        echo '<td><button id="{$row['id']}" name="edit_button" onclick="send(this)" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>'; 
       echo "</tr>\n"; 
?> 
    <scritp> 

    function send(button) { 
     var form = $('    
     <form method="post" action="update-data.php">     
      <input type="hidden" name="id" value="' + button.id + '"> 
      <input type="hidden" name="action" value="edit"></form> 
    '); 
     $('body').append(form); 
     form.submit(); 
    } 
    </scirpt> 

希望你會發現至少有用的東西在這裏。我不是一個真正的專家:D還沒有:D

相關問題