【发布时间】:2016-08-29 00:25:25
【问题描述】:
我有一个通过 PHP 生成的 html 表和数据库中的数据,我想要做的是在每行的最后一个单元格中有一个按钮,表示编辑,当您单击该按钮时,其他单元格中的文本变成文本框或其他类型的输入字段,以便您可以编辑它们,然后按提交,这将发送该表单以在数据库中更新。我现在生成表格的代码是:
<table style="width:100%; " class = "table table-striped table-bordered table-hover">
<tr>
<th>Name</th>
<th>Status</th>
<th>Description</th>
<?php
if($_SESSION['editGroup'] != 0){
echo "<th>Edit</th>";
}
?>
</tr>
<?php
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$checkQuery = "SELECT userGiven, userStatus, userDesc FROM user_Status WHERE organization = 'myOrg' ORDER BY userGiven ASC";
$prepared = $dbh->prepare($checkQuery);
$prepared->execute();
$data = $prepared->fetchAll(PDO::FETCH_ASSOC);
foreach($data as $row){
echo "<tr>";
if($_SESSION['editGroup'] != 0){
echo "<td width='20%'>" . $row['userGiven'] . "</td><td width='10%'>" . $row['userStatus'] . "</td><td width='70%'>" . $row['userDesc'] . "</td><td width='10%'><button type='button' class='btn btn-info'>Edit</button></td>";
}else{
echo "<td width='20%'>" . $row['userGiven'] . "</td><td width='15%'>" . $row['userStatus'] . "</td><td width='75%'>" . $row['userDesc'] . "</td>";
}
echo "</tr>";
}
?>
</table>
我要做的是将带有 userStatus 的单元格更改为一个下拉字段,其中当前值作为起始值,另一个输入/输出值作为另一个值以供选择。
我还想将 userDesc 更改为 textarea,我想我知道如何做到这一点,但是当我尝试将其应用于动态表时,我在概念上遇到了问题。
我的想法是我可以使用 jquery/javascript 来获取可以围绕这两个单元格的 span 变量的 innerhtml,然后将 html 更改为包含当前文本的各种输入字段,从而允许用户编辑它们以更改那些价值观。
但是,对于此类问题,我该怎么做,我需要所有按钮的 onClick 事件,而且我不知道会有多少按钮,这取决于表中的行数。
这将导致数百行冗余代码,因此我认为必须有更好的方法。有谁知道有什么方法可以做到这一点?我发现了这个:http://stackoverflow.com/questions/16202723/how-to-edit-data-onclick,这与我想要的很接近,但这似乎是静态值,我希望能够对表中的任何行执行此操作。
【问题讨论】:
标签: javascript php jquery html html-table