简体   繁体   中英

Php echo button onclick get id

I hava a dynamic list, loading from database in my php page.This list also have a delete button. When i click this button i need to get id of this button and delete from database that line with php code.

  $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">';
    }

also this is my final code for button click;

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

How can i connect with this two code. Thanks already.

You can use this working jquery template for your task. It binds to all inputs that has a name="del" .

<script src="http://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>

<script>
$(document).ready(function() {
  $('input[name="del"]').on('click', function() {
    alert('button id is '+$(this).attr('id'));
    var button_id = $(this).attr('id');
    $.ajax({
      method: 'post',
      url: "delete.php",
      data: {'did':button_id},
      dataType: "html",
      success: function(result) {
        alert(result);
      }
    });
  });
});
</script>

In your PHP delete file, you can retrieve the delete id via $_POST['did'] .

Given the level of your question I am assuming you are unfamiliar with jQuery and AJAX, but you should research both.

For a simple solution not using these you could do as follows:

Change the output to be <input type="button" id="'.$row['id'].'" value="Delete" onclick="do_delete(this.id)">;

Then you need a php script on the server side to handle the delete function, eg 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']]);
    }
?>

Then on the client side you need a form which submits when the button is clicked. Here is an example form code:

<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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM