我有四个不同的文件

index.php
select.php
insert.php
edit.php
delete.php


在后端,我创建了一个名为“ ecc”的数据库

数据库“ ecc”具有可命名的“任务”

表格任务具有以下字段

ID,名称,类别,费用

id的数据类型设置为int和index作为主要且id字段处于自动递增状态

我的问题:我的代码仅显示“实时表格数据”。

如果有人重写它或提出一些更改,将不胜感激。

index.php

<html>
      <head>
           <title>Live Table Data Edit</title>
           <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
           <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
           <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
      </head>
      <body>
           <div class="container">
                <br />
                <br />
                <br />
                <div class="table-responsive">
                     <h3 align="center">Live Table Add Edit Delete using Ajax Jquery in PHP Mysql</h3><br />
                     <div id="live_data"></div>
                </div>
           </div>
      </body>
 </html>
 <script>

 $(document).ready(function(){
      function fetch_data()
      {
           $.ajax({
                url:"select.php",
                method:"POST",
                success:function(data){
                     $('#live_data').html(data);
                }
           });
      }

 fetch_data();
      $(document).on('click', '#btn_add', function(){

           var name = $('#name').text();
           var category = $('#category').text();
           var cost = $('#cost').text();

           if(name == '')
           {
                alert("Enter Service Name");
                return false;
           }

           if(category == '')
           {
                alert("Enter Category of Service");
                return false;
           }

           if(cost == '')
           {
                alert("Enter cost");
                return false;
           }
           $.ajax({
                url:"insert.php",
                method:"POST",
                data:{name:name, category:category, cost:cost},
                dataType:"text",
                success:function(data)
                {
                     alert(data);
                     fetch_data();
                }
           })
      });
      function edit_data(id, text, column_name)
      {
           $.ajax({
                url:"edit.php",
                method:"POST",
                data:{id:id, text:text, column_name:column_name},
                dataType:"text",
                success:function(data){
                     alert(data);
                }
           });
      }
      $(document).on('blur', '.name', function(){
           var id = $(this).data("id1");
           var name = $(this).text();
           edit_data(id, name, "name");
      });
      $(document).on('blur', '.category', function(){
           var id = $(this).data("id2");
           var category = $(this).text();
           edit_data(id,category, "category");

      $(document).on('blur', '.cost', function(){
           var id = $(this).data("id3");
           var category = $(this).text();
           edit_data(id,cost, "cost");
      });

      $(document).on('click', '.btn_delete', function(){
           var id=$(this).data("id4");
           if(confirm("Are you sure you want to delete this?"))
           {
                $.ajax({
                     url:"delete.php",
                     method:"POST",
                     data:{id:id},
                     dataType:"text",
                     success:function(data){
                          alert(data);
                          fetch_data();
                     }
                });
           }
      });
 });
 </script>


select.php

<?php
 $connect = mysqli_connect("localhost", "root", "", "ecc");
 $output = '';
 $sql = "SELECT * FROM task ORDER BY id DESC";
 $result = mysqli_query($connect, $sql);
 $output .= '
      <div class="table-responsive">
           <table class="table table-bordered">
                <tr>
                     <th width="10%">Id</th>
                     <th width="40%">First Name</th>
                     <th width="40%">Last Name</th>
                     <th width="10%">Delete</th>
                </tr>';
 if(mysqli_num_rows($result) > 0)
 {
      while($row = mysqli_fetch_array($result))
      {
           $output .= '
                <tr>
                     <td>'.$row["id"].'</td>
                     <td class="name" data-id1="'.$row["id"].'" contenteditable>'.$row["name"].'</td>
                     <td class="category" data-id2="'.$row["id"].'" contenteditable>'.$row["category"].'</td>
                     <td class="cost" data-id3="'.$row["id"].'" contenteditable>'.$row["cost"].'</td>
                     <td><button type="button" name="delete_btn" data-id4="'.$row["id"].'" class="btn btn-xs btn-danger btn_delete">x</button></td>
                </tr>
           ';
      }
      $output .= '
           <tr>
                <td></td>
                <td id="name" contenteditable></td>
                <td id="category" contenteditable></td>
                <td id="cost" contenteditable></td>
                <td><button type="button" name="btn_add" id="btn_add" class="btn btn-xs btn-success">+</button></td>
           </tr>
      ';
 }
 else
 {
      $output .= '<tr>
                          <td colspan="4">Data not Found</td>
                     </tr>';
 }
 $output .= '</table>
      </div>';
 echo $output;
 ?>


insert.php

<?php
 $connect = mysqli_connect("localhost", "root", "", "test_db");
 $sql = "INSERT INTO tbl_sample(name, category, cost) VALUES('".$_POST["name"]."', '".$_POST["category"]."', '".$_POST["cost"]."')";
 if(mysqli_query($connect, $sql))
 {
      echo 'Data Inserted';
 }
 ?>


edit.php

<?php
 $connect = mysqli_connect("localhost", "root", "", "ecc");
 $id = $_POST["id"];
 $text = $_POST["text"];
 $column_name = $_POST["column_name"];
 $sql = "UPDATE task SET ".$column_name."='".$text."' WHERE id='".$id."'";
 if(mysqli_query($connect, $sql))
 {
      echo 'Data Updated';
 }
 ?>


delete.php

<?php
 $connect = mysqli_connect("localhost", "root", "", "ecc");
 $sql = "DELETE FROM task WHERE id = '".$_POST["id"]."'";
 if(mysqli_query($connect, $sql))
 {
      echo 'Data Deleted';
 }
 ?>

最佳答案

您可以为此使用数据表,而无需所有这些

https://editor.datatables.net/examples/inline-editing/simple

检查一下,数据表为此提供了库

关于php - 试图显示可使用ajax和php编辑的实时表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43154426/

10-09 08:01