如何用jquery和php删除mysql记录

时间:2011-10-15 03:30:48

标签: php jquery mysql ajax

我整天都在尝试使用jquery来删除mysql记录。我正在学习本教程http://davidwalsh.name/animated-ajax-jquery,经过几个小时我没有成功。 Blow是我的php / mysql代码,用于连接和显示数据。有人可以告诉我如何集成这两个脚本,以便我也能删除记录吗?

$dbhost = "";
$dbuser = "";
$dbpass = "";
$dbname = "";
$dbtable ="";

$connect = mysql_connect($dbhost,$dbuser,$dbpass);

if (!$connect) {
  die('Could not connect: ' . mysql_error());
}

mysql_select_db($dbname, $connect);

$result = mysql_query("SELECT * FROM $dbtable");
while ($row = mysql_fetch_array($result)) {
     echo '
      <tr class="table odd">
       <td class="sorting">'.$row["name"].'</td>
       <td>'.$row["address"].'</td>
       <td >'.$row["city"].'</td>
       <td >'.$row["zip"].'</td>
       <td >'.$row["id"].'</td>
      </tr>';
  }

mysql_close($con);

1 个答案:

答案 0 :(得分:0)

在此示例中,我将在此处构建html,JQuery,PHP和数据库:

数据库

CREATE TABLE `t1` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NULL,
  PRIMARY KEY (`id`));
  
INSERT INTO `t1` (`name`) VALUES ('Jhon');
INSERT INTO `t1` (`name`) VALUES ('Bon');
INSERT INTO `t1` (`name`) VALUES ('Jovi');

PHP(db.php):

<?php

$username = 'kmoshe';
$password = 'password';
$host = 'localhost';
$dbname = 'test';

$conn = new PDO("mysql:host=$host;dbname=$dbname",$username, $password
    ,
    array(
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_PERSISTENT => false,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ));

index.php

<?php
require_once './db.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>StackOverFlow</title>

    <script
            src="https://code.jquery.com/jquery-3.4.1.min.js"
            integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
            crossorigin="anonymous">
    </script>
    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="text/javascript" src="app.js"></script>
</head>
<body>
<?php



$sql = "SELECT * FROM t1";
$stmt = $conn->prepare($sql);
$stmt->execute();

while( $row = $stmt->fetch()){
    $id = $row['id'];
    $name = $row['name'];
    ?>
    <div class="row"><span row-id="<?=$id?>"><?=$id?>.</span><span><?=$name?></span></div>
    <?php
 }

?>
</body>

Javascript(app.js):

$(document).ready( function(){

        $(document).on('click','.row', function(e) {

            let $pressedRowID =$(this).children('span').attr('row-id');
            let fd = new FormData();
            fd.append('id', $pressedRowID);

            $.ajax({
                url: "delete.php",
                type: "POST",
                data: fd,
                processData: false,
                contentType: false,

                complete: function (results) {
                    try {
                        let str = JSON.parse(results.responseText);
                        window.location.reload();
                        console.log(str)
                    } catch (e) {
                        console.error(e.message);
                    }
                },
            });


        }) ;



});

delete.php:

<?php
require_once './db.php';
$id = $_REQUEST['id'];
$sql = "DELETE FROM t1 WHERE id = :id";
$stmt = $conn->prepare($sql);
$stmt->execute(['id' => $id]);

echo json_encode("id $id has been deleted");