Javascript 使用按钮更新表中的特定行
我有一个html表,显示数据库中的所有条目,因此每个条目有一行 我每行也有一个按钮 单击按钮时,我希望编辑与按下按钮关联的行的值,并获取与该特定行相关的所有值Javascript 使用按钮更新表中的特定行,javascript,php,mysql,html-table,Javascript,Php,Mysql,Html Table,我有一个html表,显示数据库中的所有条目,因此每个条目有一行 我每行也有一个按钮 单击按钮时,我希望编辑与按下按钮关联的行的值,并获取与该特定行相关的所有值 <html> <body> <?php $user="user"; $password="password"; $database="database"; $username=$_SESSION['username']; mysql_connect(localhost,$user,$password);
<html>
<body>
<?php
$user="user";
$password="password";
$database="database";
$username=$_SESSION['username'];
mysql_connect(localhost,$user,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM table";
$result=mysql_query($query);
$num=mysql_numrows($result);
?>
<form id="view_admin" method="post">
<table id="my_table" class= "sample" >
<tr>
<td align="center"><strong><font face="Arial, Helvetica, sans-serif">Id</font></strong></td>
<td align="center"><strong><font face="Arial, Helvetica, sans-serif">Column1</font></strong></td>
<td align="center"><strong><font face="Arial, Helvetica, sans-serif">Status</font></td>
<td align="center"><strong><font face="Arial, Helvetica, sans-serif">Edit Status</font></td>
</tr>
<?php
$i=0;
while ($i < $num) {
$f0=mysql_result($result,$i,"id");
$f1=mysql_result($result,$i,"column1");
$f2=mysql_result($result,$i,"status");
?>
<tr>
<td align="center"><font face="Arial, Helvetica, sans-serif"><?php echo $f0; ?></font></td>
<td align="center"><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
<td align="center"><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
<td align="center"><input type="submit" name="approved" value="approve"> <input type="submit" name="refused" value="refuse"> </td>
</tr>
<?php
if (isset($_POST['approved'])) {
$query_update = "UPDATE main SET status='APPROVED' WHERE id ='$f0'";
$result_update=mysql_query($query_update);}
else if (isset($_POST['refused'])) {
$query_update = "UPDATE main SET status='REFUSED' WHERE id ='$f0'";
$result_update=mysql_query($query_update);
}
$i++;
}
mysql_close();
?>
</table>
</form>
</body>
</html>
Id
第1列
状态
编辑状态
您可以在每个按钮集周围放置一个表单,并添加一个包含要更新的字段id的隐藏字段
您还需要删除包装表的表单标记
现在只会提交一个ID和按下的按钮
在表中:
<form id="view_admin" method="post">
<input type="hidden" name="f0" value="<?php echo $f0; ?>">
<input type="submit" name="approved" value="approve">
<input type="submit" name="refused" value="refuse">
</form>
您可以在每个按钮集周围放置一个表单,并添加一个包含要更新的字段id的隐藏字段
您还需要删除包装表的表单标记
现在只会提交一个ID和按下的按钮
在表中:
<form id="view_admin" method="post">
<input type="hidden" name="f0" value="<?php echo $f0; ?>">
<input type="submit" name="approved" value="approve">
<input type="submit" name="refused" value="refuse">
</form>
您可以为每行使用一个表单标记,并为每行包含一个隐藏字段“id”。提交表单时,您可以在MySQL查询中使用“id”更新当前行的值
UPDATE table SET ... WHERE id = $_POST['id']
您可以为每行使用一个表单标记,并为每行包含一个隐藏字段“id”。提交表单时,您可以在MySQL查询中使用“id”更新当前行的值
UPDATE table SET ... WHERE id = $_POST['id']
首先,我认为您应该检查使用面向对象的MySQL命令。你这样做是很痛苦的
查看ORMDB层或至少使用mysqli
您更新每一行的原因是因为您有一个大表单,其中有一组具有相同名称的按钮。所以点击其中任何一个就像点击所有的一样。您的条件语句在每个循环中都是true
相反,如果您想继续在PHP中执行此操作,我将根据行的id创建提交名称。然后,当页面再次发布和加载时,如果发布的值等于当前行id,则进行更新
<form...>
<input type='hidden' name='form_submitted' value='true' />
<?php
while(...)
{
echo "<tr><td><input type='submit' name='update_{$row_id}' value='Update' /></td></tr>";
if(!empty($_POST['form_submitted']) && isset($_POST['update_'.$row_id])) ...do update;
}
>?
首先,我认为您应该检查使用面向对象的MySQL命令。你这样做是很痛苦的
查看ORMDB层或至少使用mysqli
您更新每一行的原因是因为您有一个大表单,其中有一组具有相同名称的按钮。所以点击其中任何一个就像点击所有的一样。您的条件语句在每个循环中都是true
相反,如果您想继续在PHP中执行此操作,我将根据行的id创建提交名称。然后,当页面再次发布和加载时,如果发布的值等于当前行id,则进行更新
<form...>
<input type='hidden' name='form_submitted' value='true' />
<?php
while(...)
{
echo "<tr><td><input type='submit' name='update_{$row_id}' value='Update' /></td></tr>";
if(!empty($_POST['form_submitted']) && isset($_POST['update_'.$row_id])) ...do update;
}
>?
这没有意义:Javascript无法与表交互,因此OP肯定需要php。请注意,没有服务器端技术就没有ajax。@jeroen-我想你误读了我写的东西。我说过Javascript将使用AJAX调用AJAX脚本。那就是PHP。几乎每个站点都是这样工作的。我已经建立了一百个这样的网站。我对否决票感到失望。我想你不明白我在说什么。人们一直使用AJAX与数据库交互。当然,您必须在PHP中构建一个由AJAX调用的某种模型。您的文本提出了不同的建议:,如果您想坚持在PHP中这样做的话。除此之外,我认为让OP以正常方式工作已经足够有挑战性了。下一步是添加ajax以获得更好的用户体验,但这超出了本问题的范围。无论如何,我的反对票是支持使用javascript和抛弃php的建议。如果你能根据你的评论修改文本,我将删除它。@jeroen-只要它超出了问题的范围,就足够公平了。建议已删除。这没有意义:Javascript无法与表交互,因此OP肯定需要php。请注意,没有服务器端技术就没有ajax。@jeroen-我想你误读了我写的东西。我说过Javascript将使用AJAX调用AJAX脚本。那就是PHP。几乎每个站点都是这样工作的。我已经建立了一百个这样的网站。我对否决票感到失望。我想你不明白我在说什么。人们一直使用AJAX与数据库交互。当然,您必须在PHP中构建一个由AJAX调用的某种模型。您的文本提出了不同的建议:,如果您想坚持在PHP中这样做的话。除此之外,我认为让OP以正常方式工作已经足够有挑战性了。下一步是添加ajax以获得更好的用户体验,但这超出了本问题的范围。无论如何,我的反对票是支持使用javascript和抛弃php的建议。如果你能根据你的评论修改文本,我将删除它。@jeroen-只要它超出了问题的范围,就足够公平了。建议删除。