jQuery删除按钮

时间:2019-01-18 07:15:27

标签: php jquery mysql ajax

我想使用jQuery删除一些记录,我不知道错误是什么,我无法删除记录。当我单击记录中的编辑按钮时,它看起来可以正常工作并且可以修改记录,但是当我单击删除按钮时,它不起作用。这是我的代码:

  

index.php

  <?php
    include('database_connection.php');

    $query = "SELECT * FROM apps_countries ORDER BY country_name ASC";
    $statement = $connect->prepare($query);
    $statement->execute();
    $result = $statement->fetchAll();


    ?>

    <html>  
        <head>  
            <title>How to Make Editable Select Box using jQuery with PHP</title>
            <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
            <link rel="stylesheet" href="jquery-editable-select.min.css" />
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
            <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
            <script src="jquery-editable-select.min.js"></script>

        </head>  
        <body>  
            <div class="container">  
                <br />  
                <br />
                <br />
                <h2 align="center">How to Make Editable Select Box using jQuery with PHP</h2><br />
                <div class="row">
                    <div class="col-md-3"></div>
                    <div class="col-md-6">
                        <form method="post" id="sample_form">
                            <div class="form-group">
                                <label>Enter Name</label>
                                <input type="text" name="name" id="name" class="form-control">
                            </div>
                            <div class="form-group">
                                <label>Select Country</label>
                                <select name="country" id="country" class="form-control">
                                <?php
                                foreach($result as $row)
                                {
                                    echo '<option value="'.$row["country_name"].'">'.$row["country_name"].'</option>';
                                }
                                ?>
                                </select>
                            </div>
                            <div class="form-group">
                                <input type="hidden" name="action" id="action" value="add" />
                                <input type="hidden" name="hidden_id" id="hidden_id" value="" /> 
                                <input type="hidden" name="hidden_id1" id="hidden_id1" value="" /> 
                                <input type="submit" name="Save" id="save" class="btn btn-success" value="Save" />
                            </div>
                        </form>
                        <br />
                        <div class="table-responsive">
                            <table class="table table-bordered">
                                <thead>
                                    <tr>
                                        <th>Name</th>
                                        <th>Country</th>
                                        <th>Edit</th>
                                        <th>Delete</th>
                                    </tr>
                                </thead>
                                <tbody>

                                </tbody>
                            </table>
                        </div>
                    </div>

                </div>


                <br />
                <br />
                <br />
            </div>
        </body>  
    </html>  
    <script>  
    $(document).ready(function(){

        fetch_data();

        function fetch_data()
        {
            $.ajax({
                url:"fetch.php",
                method:"POST",
                success:function(data)
                {
                    $('tbody').html(data);
                }
            });
        }

        $('#country').editableSelect();

        $('#sample_form').on('submit', function(event){
            event.preventDefault();

            if($('#name').val() == '')
            {
                alert("Enter Name");
                return false;
            }
            else if($('#country').val() == '')
            {
                alert("Select Country");
                return false;
            }
            else
            {
                $.ajax({
                    url:"action.php",
                    method:"POST",
                    data:$(this).serialize(),
                    success:function(data)
                    {
                        alert(data);
                        $('#sample_form')[0].reset();
                        $('#action').val("add");
                        $('#save').val('Save');
                        fetch_data();
                    }
                });
            }
        });

        $(document).on('click', '.edit', function(){
            var id = $(this).attr("id");
            var action = 'fetch_single';
            $.ajax({
                url:"action.php",
                method:"POST",
                data:{id:id, action:action},
                dataType:'json',
                success:function(data)
                {
                    $('#hidden_id').val(id);
                    $('#name').val(data.name);
                    $('#country').val(data.country);
                    $('#action').val("edit");
                    $('#save').val('Edit');
                }
            });
        });

        $(document).on('click', '.Delete', function(){
            var id = $(this).attr("id");
            var action = 'fetch_single';
            $.ajax({
                url:"action.php",
                method:"POST",
                data:{id:id, action:action},
                dataType:'json',
                success:function(data)
                {
                    $('#hidden_id1').val(id);
                    $('#name').val(data.name);
                    $('#country').val(data.country);
                    $('#action').val("delete");
                    $('#save').val('Delete');
                }
            });
        });

    });  
    </script>
  

fetch.php

<?php 
include('database_connection.php');

$query = "SELECT * FROM sample_data ORDER BY id DESC";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
$total_row = $statement->rowCount();
$output = '';
if($total_row > 0)
{
    foreach($result as $row)
    {
        $output .= '
        <tr>
            <td>'.$row["name"].'</td>
            <td>'.$row["country"].'</td>
            <td><button type="button" name="edit" class="btn btn-primary btn-xs edit" id="'.$row["id"].'">Edit</button></td>
            <td><button type="button" name="delete" class="btn btn-danger btn-xs delete" id="'.$row["id"].'">Delete</button></td>
        </tr>
        ';
    }
}
else
{
    $output .= '
    <tr>
        <td colspan="3" align="center">Data not found</td>
    </tr>
    ';
}

echo $output;

?>
  

action.php

 <?php

    include('database_connection.php');

    if(isset($_POST["action"]))
    {   

        if($_POST["action"] == "add")
        {
            $data = array(
                ':name'     =>  $_POST["name"],
                ':country'  =>  $_POST["country"]
            );

            $query = "
            INSERT INTO sample_data (name, country) 
            VALUES (:name, :country)
            ";

            $statement = $connect->prepare($query);
            if($statement->execute($data))
            {
                echo 'Data Inserted';
            }
        }

        if($_POST["action"] == 'fetch_single')
        {
            $query = "SELECT * FROM sample_data WHERE id='".$_POST["id"]."'";
            $statement = $connect->prepare($query);
            $statement->execute();
            $result = $statement->fetchAll();
            foreach($result as $row)
            {
                $output['name'] = $row["name"];
                $output['country'] = $row["country"];
            }
            echo json_encode($output);
        }

        if($_POST["action"] == "edit")
        {
            $data = array(
                ':name'     =>  $_POST["name"],
                ':country'  =>  $_POST["country"],
                ':id'       =>  $_POST["hidden_id"]
            );
            $query = "
            UPDATE sample_data 
            SET name = :name, country = :country 
            WHERE id = :id
            ";
            $statement = $connect->prepare($query);
            if($statement->execute($data))
            {
                echo 'Data Updated';
            }
        }

        if($_POST["action"] == "delete")
        {
            $data = array(
                ':name'=> $_POST["name"],
                ':country' => $_POST["country"],
                ':id' => $_POST["hidden_id1"]);
            $query = "DELETE * FROM sample_data WHERE id='".$_POST["id"]."'";

            $statement = $connect ->prepare($query);
            if($statement->execute($data))
            {
                echo 'data deleted';
            }
        }
    }

    ?>
  

database_connection.php

 <?php $connect = new PDO("mysql:host=localhost;dbname=sampl1", "root", ""); ?>

2 个答案:

答案 0 :(得分:0)

代替按钮,您可以像这样给标签

<a href=\"action.php?id=$row[id]\">Delete</a>

和使用$ _REQUEST ['id'] 的featch id

<?php
$id =$_REQUEST['id'];
// sending query
$query = "DELETE * FROM sample_data WHERE id='".$_POST["id"]."'";

  $statement = $connect ->prepare($query);
 if($statement->execute($data))
   {
       echo 'data deleted';
    }    

?>

答案 1 :(得分:0)

我认为您的错误可能在此处的这段代码中。 有时,JQuery可能区分大小写。 更改此:

$(document).on('click', '.Delete', function(){

对此:

 $(document).on('click', '.delete', function(){

在:

$(document).on('click', '.Delete', function(){ <-- CHANGE THIS LINE HERE AND LEMME KNOW IF IT WORKS
        var id = $(this).attr("id");
        var action = 'fetch_single';
        $.ajax({
            url:"action.php",
            method:"POST",
            data:{id:id, action:action},
            dataType:'json',
            success:function(data)
            {
                $('#hidden_id1').val(id);
                $('#name').val(data.name);
                $('#country').val(data.country);
                $('#action').val("delete");
                $('#save').val('Delete');
            }
        });
    });