Php MySQL更新表textarea html

时间:2016-07-29 09:44:18

标签: php html mysql textarea

我有一个表格,其中ResultHRM列包含一个textarea,用户可以在其中编写注释。我想知道,当我点击提交按钮时,如何将textarea内容的正确行更新到我的MySQL表NContrib中? 我读到textarea不能有值属性。

我的表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>

3 个答案:

答案 0 :(得分:0)

我想在此提及一些观点:

  1. 如果ResultHRM字段将保留表单中textarea的值,我建议您更改数据类型。目前,它的varchar(60)。我建议,它应该是text
  2. 从数据库中获取数据后,您将在表结构中显示它。我建议你添加textarea并用现有值填充它。我们假设你命名为textarea ResultHRM_ta
  3. 一旦您按照第2点并提交表单,您可以在$_POST['ResultHRM_ta']上的SaveValidation.php中获得textarea值。
  4. 将值保存在数据库中。
  5. 请注意,我已经提到了您需要遵循的流程的基本大纲。您必须自己处理安全措施和编码标准。

答案 1 :(得分:0)

1)在$rowNcontrib['ResultHRM']之间使用<textarea></textarea>来显示value

2)另外使用name='ResultHRM[]'这将为您提供已更新的array textarea个值但您无法跟踪哪个值属于哪个{{1} }}。所以ID。此处name='ResultHRM[$id]'应为id

的ID

所以你的代码应该是

row

现在在页面 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;}

答案 2 :(得分:0)

要解决此问题,您可以使用代码调用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>