Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tạo CRUD bằng PHP + Bootstrap Modal + Mysql + JS

Tôi thấy những gì bạn có bây giờ. Cảm ơn bạn đã thêm mã. Đầu tiên tôi sẽ tập trung vào thiết kế. Có vẻ như bạn muốn một số loại hệ thống CRUD (Tạo Truy xuất Cập nhật Xóa). Trong trường hợp đó, điều tôi sẽ làm là đặt biểu mẫu gửi ban đầu lên trên (như những gì bạn có) và sử dụng các phương thức để hiển thị bất kỳ thông báo cảnh báo nào và biểu mẫu Chỉnh sửa.

Thiết kế sẽ giống như sau:

+-------------------------------------+
| Submit Form                         |
| - input                             |
| - input                             |
+-------------------------------------+
| List showing DB info                |
| - result 1 (with Edit/Delete links) |
| - result 2 (with Edit/Delete links) |
| ...                                 |
+-------------------------------------+

Khi tải trang, bạn sẽ chạy một hàm JS, chúng ta có thể gọi nó là update_list() , điều đó sẽ sử dụng AJAX để tìm nạp tất cả thông tin cơ sở dữ liệu và phân tích cú pháp nó trong vùng chứa Danh sách.

Sau đó, bạn sẽ delegate Chỉnh sửa / Xóa sự kiện Nhấp để gọi các cuộc gọi AJAX mong muốn.

Hãy nhớ rằng, cấu trúc thiết kế này tách biệt mọi thứ trong các hàm và sử dụng AJAX để gọi các tập lệnh PHP. Dữ liệu sẽ được gửi qua JSON.

Bây giờ, khi bạn Gửi biểu mẫu gửi, điều này cũng sẽ sử dụng AJAX để gửi yêu cầu ĐĂNG đến PHP, sau đó khi được gửi, JS sẽ sử dụng phương thức của Bootstrap để hiển thị thông báo.

Khi liên kết chỉnh sửa được nhấp vào, JS sẽ lại mở một phương thức Bootstrap để hiển thị biểu mẫu chỉnh sửa.

Với điều đó đã nói, đây là cách tôi sẽ làm điều đó:

<html>
    <title>Modal</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <head>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
        <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
        <style>
            #wrapper {
                padding: 10px;
            }

            .modal-header, h4, .close {
                background-color: #5cb85c;
                color: white !important;
                text-align: center;
                font-size: 30px;
            }

            .modal-footer {
                background-color: #f9f9f9;
            }
        </style>
    </head>
    <body>
        <div id="wrapper">
            <form id="submit_form" role="form" style="width: 300px;">
                <div class="form-group">
                    <label for="pais">Pais:</label>
                    <?php
                    $array_pais = array('Selecione...', 'Alemanha', 'Angola', 'Argentina', 'Bolívia', 'Brasil', 'Camarões', 'Canadá', 'Chile', 'China', 'Colombia',
                        'Costa Rica', 'Cuba', 'Dinamarca', 'Equador', 'Espanha', 'Estados Unidos', 'França', 'Holanda', 'Inglaterra', 'Itália', 'Japão',
                        'México', 'Nigéria', 'Panamá', 'Paraguai', 'Peru', 'Porto Rico', 'Portugal', 'Rússia', 'Senegal', 'Taiwan', 'Uruguai', 'Venezuela'
                    );
                    echo '<select class="form-control" name="pais" id="pais">';
                    foreach ($array_pais as $valor) {
                        echo '<option>' . $valor . '</option>';
                    }
                    echo '</select>';
                    ?>
                </div>
                <div class="form-group">
                    <label for="nome">Nome:</label>
                    <input class="form-control" name="nome" type="text" id="nome" size="50">
                </div>
                <div class="form-group">
                    <label for="empresa">Empresa:</label>
                    <input class="form-control" name="empresa" type="text" id="empresa" size="50" style="text-transform:uppercase;">
                </div>
                <input type="submit" name="Submit" class="btn btn-success btn-lg" value="+">
            </form>


            <table id="list" class="table">
                <thead align="center">
                    <tr bgcolor="#B0E2FF">
                        <th>PAÍS</th>
                        <th>NOME</th>
                        <th>EMPRESA</th>
                        <th>AÇÕES</th>
                    </tr>
                </thead>
                <tbody>
                </tbody>
            </table>

            <div class="modals_container">
                <div class="modal fade" id="message_modal" role="dialog">
                    <div class="modal-dialog">
                        <div class="modal-content">
                            <div class="modal-header">
                                <button type="button" class="close" data-dismiss="modal">&times;</button>
                                <h4 class="modal-title">Message</h4>
                            </div>
                            <div class="modal-body"></div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="modal fade" id="edit_modal" role="dialog">
                    <div class="modal-dialog">
                        <form id="edit_form" class="form">
                            <div class="modal-content">
                                <div class="modal-header">
                                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                                    <h4 class="modal-title">Edit</h4>
                                </div>
                                <div class="modal-body">
                                    <div class="form-group">
                                        Country: <input id="country_input" type="text" name="country">
                                    </div>
                                    <div class="form-group">
                                        Nome: <input id="username_input" type="text" name="username">
                                    </div>
                                    <div class="form-group">
                                        Company: <input id="company_input" type="text" name="company">
                                    </div>
                                    <input id="id_input" type="hidden" name="id">
                                </div>
                                <div class="modal-footer">
                                    <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                                    <button type="submit" class="btn btn-default">submit</button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
        <script>
            function update_list() {
                $.getJSON("get_list.php", function (data) {

                    if (data.response) {
                        $("#list").find("tbody").empty();
                        data.results.forEach(function (i) {
                            console.log(i);
                            $("#list").find("tbody").append(
                                "<tr>" +
                                "<td>" + i.country + "</td>" +
                                "<td>" + i.username + "</td>" +
                                "<td>" + i.company + "</td>" +
                                "<td><a class='edit_link' href='" + JSON.stringify(i) + "'>edit</a> | <a class='delete_link' href='" + i.id + "'>delete</a></td>" +
                                "</tr>"
                            );
                        });
                    }

                });
            }
            update_list();
            $('#submit_form').submit(function () {
                $.ajax({
                    url: "main.php",
                    type: "POST",
                    data: $(this).serialize(),
                    dataType: "json",
                    success: function (data) {
                        if (data.response) {
                            var $modal = $('#message_modal');
                            $modal.find(".modal-body").html(data.message);
                            $modal.modal('show');
                            update_list();
                        } else {
                            alert(data.message);
                        }
                    }
                });
                return false;
            });

            $("#list").delegate('.edit_link', 'click', function (e) {
                e.preventDefault();
                var info = JSON.parse($(this).attr("href"));
                var $modal = $("#edit_modal");
                $modal.find("#country_input").val(info.country);
                $modal.find("#company_input").val(info.company);
                $modal.find("#username_input").val(info.username);
                $modal.find("#id_input").val(info.id);
                $modal.modal('show');
            });

            $('#edit_form').submit(function () {
                $.ajax({
                    url: "edit.php",
                    type: "POST",
                    data: $(this).serialize(),
                    dataType: "json",
                    success: function (data) {
                        if (data.response) {
                            var $modal = $('#message_modal');
                            $("#edit_modal").modal('hide');
                            $modal.find(".modal-body").html(data.message);
                            $modal.modal('show');
                            update_list();
                        } else {
                            alert(data.message);
                        }
                    }
                });
                return false;
            });
        </script>
    </body>
</html>

edit.php phải giống như thế này:

$con = mysqli_connect("localhost", "root", "", "test");

// Check connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$id = $_POST['id'];
$nome = $_POST['username'];
$company = $_POST['company'];
$country = $_POST['country'];


$query = "UPDATE table SET username = '$nome', company = '$company', country= '$country' WHERE id = $id ";

if (mysqli_query($con, $query)) {
    $res['response'] = true;
    $res['message'] = "Record has been updated";
} else {
    $res['response'] = false;
    $res['message'] = "Error: " . $query . "<br>" . mysqli_error($con);
}

echo json_encode($res);

Hãy thử điều này và cho tôi biết suy nghĩ của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Server của tôi là phiên bản nào?

  2. JDBC:Làm cách nào để lấy kết quả của hàm COUNT trong SQL từ tập kết quả?

  3. Chèn nhiều câu lệnh vào MySQL Case

  4. Cách tốt nhất để sử dụng LEFT OUTER JOIN để kiểm tra sự không tồn tại của các hàng liên quan là gì

  5. gọi một hàm thành viên thực thi () trên một đối tượng không phải