单击删除按钮时删除相应的行[id]


Delete the respective row[id] on clicking the delete button

<td>
    <form action="del.php" method="POST">
        <?php foreach($jk as $item) {
            echo"<input type='hidden' name='id' value='".$item['emc_id']."'>";       
        }
        ?>         
        <input type="submit" name="downld" value="DELETE" >
    </form>
</td>

如您所见,我正在使用 hidden 但在 del.php 中传递一个值。我得到4分。 我的数据库中有 4 个数据,但是当我单击rowid-1 rowid-2和任何其他 id 时,我总是得到一个 id-4。每当我单击"删除"按钮时,都应删除相应的ID。

<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel">
<html>
<head>
WELCOME <?=$_SESSION['user']?></br>
<a href="logout.php" >log-out</a></br>
<title> emc promo 1</title>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
</head>
<body>
         <b>the total no rows are :</b><?=$g?>
        <table cellpadding="5" border="1" style="width:450px;"><tr>
<?php   for ($i=0; $i < count($colnames); $i++) { ?>
        <td><?=$colnames[$i]?></td>
<?php   }?>
        <td>DELETE</td>
        <td>EDIT</td>
        </tr>
<?php   for ($i=0; $i < count($jk); $i++) { ?>
        <tr>
<?php   for ($ii=0; $ii < count($colnames); $ii++) {?>
        <td><?=$jk[$i][$colnames[$ii]]?></td>
<?php  }?>
        <td><form action="del.php" method="POST">
        <input type='hidden' name='id' value= <?php echo $jk[$i];?>> 
           <input type="submit" name="downld" value="DELETE" >
           </form></td>
           <td><form action="edit.php" method="POST">
           <input type="hidden" name="id1" value="<?=$jk['$i'];?>">
           <input type="submit" name="downld" value="UPDATE " >
           </form></td>
          </tr>
<?php } ?>
          </table>
          </body>
          </html>

得到了答案,现在我正在传递所有列值以便我可以在删除和编辑时进行检查

你到底想实现什么?您要一次删除一行还是多行?您现在正在做的是动态创建隐藏框,但是隐藏字段的名称是相同的,因此当浏览器呈现时,它将创建四个文本框,例如:: --

<input type="hidden" name="id" value="1" />
<input type="hidden" name="id" value="2" /> 
<input type="hidden" name="id" value="3" />
<input type="hidden" name="id" value="4" />

现在,当您发布表单时,您将获得最后一个值。 所以你总是会得到 4。如果您尝试删除单个记录,请使用 paw 建议的方法。如果要删除多条记录,请在每行前面使用复选框,并确保对复选框名称使用类似数组的表示法,例如 name="foo[]">

你应该在你的行中附加一个id,就像这样:在你的foreach里面

echo "<a href="delete.php?id=". $row['id']>Delete</a>"

每当用户单击链接删除时,ID都会传递到PHP脚本中,您将在那里$_GET传递id并使用id进行delete query,我希望这有所帮助。