Php MySQL 更新 table 文本区域 html
Php MySQL update table textarea html
我有一个 table,其中 ResultHRM 列包含一个文本区域,用户可以在其中写评论。我想知道,当我点击提交按钮时,如何将包含文本区域内容的正确行更新到我的 MySQL table NContrib 中?
我读到 textarea 不能有 value 属性。
我的 table 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 页面中,我这样显示 table:
<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
.
- 从数据库中获取数据后,您将在 table 结构中显示它。我建议您添加 textarea 并用现有值填充它。假设您将 textarea 命名为
ResultHRM_ta
- 一旦您遵循第 2 点并提交表单,您就可以在
SaveValidation.php
上的 $_POST['ResultHRM_ta']
中获得 textarea 值。
- 将值保存在数据库中。
请注意,我已经提到了您需要遵循的流程的基本大纲。您将必须自行处理安全措施和编码标准。
1) 在<textarea></textarea>
之间使用$rowNcontrib['ResultHRM']
显示value
2) 也使用 name='ResultHRM[]'
这会给你一个 array
的 textarea
值,你已经更新但你不会跟踪哪个值属于哪个 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 行中调用方法,如下所示:
<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>
我有一个 table,其中 ResultHRM 列包含一个文本区域,用户可以在其中写评论。我想知道,当我点击提交按钮时,如何将包含文本区域内容的正确行更新到我的 MySQL table NContrib 中? 我读到 textarea 不能有 value 属性。
我的 table 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 页面中,我这样显示 table:
<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
. - 从数据库中获取数据后,您将在 table 结构中显示它。我建议您添加 textarea 并用现有值填充它。假设您将 textarea 命名为
ResultHRM_ta
- 一旦您遵循第 2 点并提交表单,您就可以在
SaveValidation.php
上的$_POST['ResultHRM_ta']
中获得 textarea 值。 - 将值保存在数据库中。
请注意,我已经提到了您需要遵循的流程的基本大纲。您将必须自行处理安全措施和编码标准。
1) 在<textarea></textarea>
之间使用$rowNcontrib['ResultHRM']
显示value
2) 也使用 name='ResultHRM[]'
这会给你一个 array
的 textarea
值,你已经更新但你不会跟踪哪个值属于哪个 ID
。所以 name='ResultHRM[$id]'
。这里 id
应该是 row
所以你的代码应该是
喜欢
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 行中调用方法,如下所示:
<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>