首页 > 解决方案 > php echo按钮onclick获取id

问题描述

我有一个动态列表,从我的 php 页面中的数据库加载。这个列表也有一个删除按钮。当我单击此按钮时,我需要获取此按钮的 id 并从数据库中删除该行与 php 代码。

  $dbh = new PDO("sqlite:database.sdb");
  $sql ="SELECT  *      FROM clip";

foreach ($dbh->query($sql) as $row)
    {
    print 'Id: '. $row['id'] .'<br />';
    echo '<input type="submit" id="'.$row['id'].'" value="delete" name="del">';
    }

这也是我点击按钮的最终代码;

$dbh->exec("delete clip where id='in here should be button id'");

我如何连接这两个代码。已经谢谢了。

标签: phpbuttongetecho

解决方案


鉴于您的问题程度,我假设您不熟悉 jQuery 和 AJAX,但您应该同时研究两者。

对于不使用这些的简单解决方案,您可以执行以下操作:

将输出更改为<input type="button" id="'.$row['id'].'" value="Delete" onclick="do_delete(this.id)">;

然后你需要在服务器端有一个 php 脚本来处理删除功能,例如yourhandler.php

<?
    //connect to DB here

    if ($_POST['id']) {
        $sql = "delete from clip where id=:delete_id";
        $stmt = $dbh->prepare($sql);
        $stmt->execute([':delete_id'=>$_POST['id']]);
    }
?>

然后在客户端,您需要一个在单击按钮时提交的表单。这是一个示例表单代码:

<form action="yourhandler.php" method="post" id="myform">
    <!--Your PHP script which creates buttons-->
    <input type="hidden" value="" name="id" id="delete_id">
</form>
<script>
    function do_delete(which) {
        var x = document.getElementById('delete_id');
        x.value=which;
        document.getElementById('myform').submit();
    }
</script>

推荐阅读