我有一个sql数据库表,我正在使用HTML表在网页上显示。该表的最后一列是一个“编辑”选项,我希望通过该选项提示用户更新数据。
为此,我想传递用户选择编辑的行ID的数据值。
我的显示表包含以下代码
<?php
while($row = mysql_fetch_array($fetched_value, MYSQL_ASSOC))
{
echo
"<tr>
<td>{$row['name']}</td>
<td>{$row['email_id']}</td>
<td>{$row['mobile_number']}</td>;
echo '<td><button id="edit_button" name="edit_button" type="submit" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>';
echo "</tr>\n";
}
?>
其中,
<?php $fetched_value = mysql_query( $fetch_query, $conn ); ?>
请注意,在每一行的末尾,我都有一个编辑按钮,我想用它进行进一步处理。
我想调用(通过POST
方法)本地php文件,比如说update-data.php
,其中会有代码接受POST
ed数据,显示表格以及预填充表单空间。
但是我无法使用POST
方法将数据传递给此更新PHP文件。
您能否建议一种方法来传递点击更新链接的特定数据值?
答案 0 :(得分:1)
正如chris85所指出的那样,GET将是你的选择,除非你愿意用'FORM'包裹每一行或使用'JS'。
获取强>:
生成链接而不是按钮:<a href="update-data.php?id={$row[id]}&action=edit">Edit</a>
你可以通过CSS让它们看起来像按钮。
您可以在update-data.php中获取其余数据以预先填写表格,或者发送它以扩展您的GET查询,但请注意:如果您希望传递任何类型的敏感数据,请通过GET发送所有数据 - 不是方式。
<强> FORM 强>:
换行表格中的每一行:
echo
"
<form method="post" action="update-data.php">
<input type="hidden" name="name" value="{$row['name']}">
<input type="hidden" name="email_id" value="{$row['email_id']}">
<input type="hidden" name="mobile_number" value="{$row['mobile_number']}">
<input type="hidden" name="id" value="{$row['id']}">
<input type="hidden" name="action" value="edit">
<tr>
<td>{$row['name']}</td>
<td>{$row['email_id']}</td>
<td>{$row['mobile_number']}</td>;
echo '<td><button id="edit_button" name="edit_button" type="submit" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>';
echo "</tr>\n</form>";
在这里你可以发送所有的值。在GET选项中,无论你做什么,你必须发送一个唯一的行标识符(假设你想要更新条目或做任何其他事情),所以我假设你有一个自动增量列'id',因为它是最常见的事情imo。如果不是这种情况,请将其更改为唯一的行标识符。
<强> JS 强>:
第三个选项是在提交按钮中添加onclick
属性,链接到js函数,该函数提交填充字段的隐藏/生成表单,如上例所示。这可能看起来像这样:
<?php echo
"
<tr>
<td>{$row['name']}</td>
<td>{$row['email_id']}</td>
<td>{$row['mobile_number']}</td>;
echo '<td><button id="{$row['id']}" name="edit_button" onclick="send(this)" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>';
echo "</tr>\n";
?>
<scritp>
function send(button) {
var form = $('
<form method="post" action="update-data.php">
<input type="hidden" name="id" value="' + button.id + '">
<input type="hidden" name="action" value="edit"></form>
');
$('body').append(form);
form.submit();
}
</scirpt>
希望你能在这里找到至少有用的东西。我不是真正的专家:D还是:D
答案 1 :(得分:0)
你可以这样做echo '<td><button onclick="editData()" type="button" style="border:0; background:transparent;"><i class="fa fa-pencil-square-o" aria-hidden="true" style="color:#006600;"></i></button></td>';
。那么你可以通过ajax传递editData()中的数据。古德勒克