[英]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> ID </th>
<th> Reference </th>
<th> ResultsHRM </th>
</tr>
<?php
while($rowNcontrib = mysqli_fetch_assoc($PerformSql)) {
echo "<tr><td> ".$rowNcontrib["ID"]." </td><td> ".$rowNcontrib["Reference"]." </td><td><textarea name='ResultHRM[]' id='ResultHRM[]' cols='30' rows='1'></textarea></td></tr>";
}
?>
</table>
<input type="submit" name="sendEcht" value="Submit" />
</form>
我想在此提及一些觀點:
ResultHRM
字段將保留表單中textarea的值,我建議您更改數據類型。 目前,它的varchar(60)
。 我建議,應該是text
。 ResultHRM_ta
$_POST['ResultHRM_ta']
上SaveValidation.php
。 請注意,我已經提到了您需要遵循的流程的基本大綱。 您必須自己處理安全措施和編碼標准。
1)在beetween <textarea></textarea>
使用$rowNcontrib['ResultHRM']
來顯示value
2)也可以使用use name='ResultHRM[]'
這將為您提供已更新的textarea
值array
,但您不會跟蹤哪個值屬於哪個ID
。 所以name='ResultHRM[$id]'
。 這里的id
應該是row
的id
所以你的代碼應該是
喜歡
while($rowNcontrib = mysqli_fetch_assoc($PerformSql)) {
$id = $rowNcontrib["ID"];
echo "<tr><td> ".$rowNcontrib["ID"]." </td><td> ".$rowNcontrib["Reference"]." </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> ID </th>
<th> Reference </th>
<th> ResultsHRM </th>
</tr>
<?php
while($rowNcontrib = mysqli_fetch_assoc($PerformSql)) {
echo "<tr><td> ".$rowNcontrib["ID"]." </td><td> ".$rowNcontrib["Reference"]." </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.