簡體   English   中英

Php MySQL更新表textarea html

[英]Php MySQL update table textarea html

我有一個表格,其中ResultHRM列包含一個textarea,用戶可以在其中寫評論。 我想知道,當我點擊提交按鈕時,如何將textarea內容的正確行更新到我的MySQL表NContrib中? 我讀到textarea不能有value屬性。

我的表NContrib具有以下結構:

+-------------------+--------------+------+-----+---------+----------------+
| Field             | Type         | Null | Key | Default | Extra          |
+-------------------+--------------+------+-----+---------+----------------+
| IdVariantNContrib | mediumint(9) | NO   | PRI | NULL    | auto_increment |
| ID                | varchar(30)  | YES  |     | NULL    |                |
| Reference         | varchar(20)  | YES  |     | NULL    |                |
| ResultHRM         | varchar(60)  | YES  |     | NULL    |                |
+-------------------+--------------+------+-----+---------+----------------+

在我的php頁面中,我顯示這樣的表:

    <form method='POST' action='SaveValidation.php'>
    <?php
    require_once 'config.php'; //database connection
    $sql='SELECT ID, Reference, ResultHRM FROM NContrib';
    $PerformSql=mysqli_query($conn,$sql) or die(mysqli_error($conn));
    ?>
<table style="width:100%" border='1px' CELLSPACING='0' cellpadding='2'>
  <tr>
    <th>&nbsp;ID&nbsp;</th>
    <th>&nbsp;Reference&nbsp;</th>
    <th>&nbsp;ResultsHRM&nbsp;</th>
  </tr>
<?php
while($rowNcontrib =  mysqli_fetch_assoc($PerformSql)) {
  echo "<tr><td>&nbsp;".$rowNcontrib["ID"]."&nbsp;</td><td>&nbsp;".$rowNcontrib["Reference"]."&nbsp;</td><td><textarea name='ResultHRM[]' id='ResultHRM[]' cols='30' rows='1'></textarea></td></tr>";
 }
?>
</table>
<input type="submit" name="sendEcht" value="Submit" />
</form>

我想在此提及一些觀點:

  1. 如果ResultHRM字段將保留表單中textarea的值,我建議您更改數據類型。 目前,它的varchar(60) 我建議,應該是text
  2. 從數據庫中獲取數據后,您將在表結構中顯示它。 我建議你添加textarea並用現有值填充它。 我們假設您將textarea命名為ResultHRM_ta
  3. 一旦你將跟隨點#2,並提交表單,您可以在文本區域價值$_POST['ResultHRM_ta']SaveValidation.php
  4. 將值保存在數據庫中。

請注意,我已經提到了您需要遵循的流程的基本大綱。 您必須自己處理安全措施和編碼標准。

1)在beetween <textarea></textarea>使用$rowNcontrib['ResultHRM']來顯示value

2)也可以使用use name='ResultHRM[]'這將為您提供已更新的textareaarray ,但您不會跟蹤哪個值屬於哪個ID 所以name='ResultHRM[$id]' 這里的id應該是row的id

所以你的代碼應該是

喜歡

 while($rowNcontrib =  mysqli_fetch_assoc($PerformSql)) {
        $id = $rowNcontrib["ID"];
      echo "<tr><td>&nbsp;".$rowNcontrib["ID"]."&nbsp;</td><td>&nbsp;".$rowNcontrib["Reference"]."&nbsp;</td><td><textarea name='ResultHRM[$id]' id='ResultHRM[]' cols='30' rows='1'>".$rowNcontrib['ResultHRM ']."</textarea></td></tr>";
     }

現在在頁面SaveValidation.php檢查這個

 if(isset($_POST['sendEcht'])){
 echo "<pre>";print_r($_POST);die;}

這會告訴你這樣的事情

Array
(
    [ResultHRM] => Array
        (
            [3] => hello its test
            [11] => test string
            [10] => 

        )

    [sendEcht] => Submit
)

// here 3,11, 10 are my id's of table in your case it will be the id's of your table then you can easily update your table `ResultHRM` field

要解決此問題,您可以使用代碼調用AJAX請求,並在javascript方法中為每個請求傳遞id。

並且在html代碼中你可以在每個表行中調用方法,如下所示:

<table style="width:100%" border='1px' CELLSPACING='0' cellpadding='2'>
  <tr>
    <th>&nbsp;ID&nbsp;</th>
    <th>&nbsp;Reference&nbsp;</th>
    <th>&nbsp;ResultsHRM&nbsp;</th>
  </tr>
<?php
while($rowNcontrib =  mysqli_fetch_assoc($PerformSql)) {
  echo "<tr><td>&nbsp;".$rowNcontrib["ID"]."&nbsp;</td><td>&nbsp;".$rowNcontrib["Reference"]."&nbsp;</td><td><textarea name='ResultHRM' id='ResultHRM' cols='30' rows='1'></textarea></td><td><button type='button' onclick='update(".$rowNcontrib["ID"].")'">Update</button>;
 }
?>
</table>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM