用按钮sweetalert2删除行表php mysql ajax

问题描述

我想用ajax删除表的某一行中的一本书,但我做不到。 我的PHP代码具有MVC结构 我的routeur index.PHP

    <?PHP
    session_start();
    define("URL",str_replace("index.PHP","",(isset($_SERVER['HTTPS']) ? "https" : "http").
     "://$_SERVER[HTTP_HOST]$_SERVER[PHP_SELF]"));

      require_once "controllers/BooksController.controller.PHP";
    $bookController = new BooksController;

         try{
           if(empty($_GET['page'])){
          require "views/welcome.view.PHP";
          } else {
            $url = explode("/",filter_var($_GET['page']),FILTER_SANITIZE_URL);

        switch($url[0]){
            case "welcome" : require "views/welcome.view.PHP";
            break;
            case "book" : 
                if(empty($url[1])){
                    $bookController->displayBooks();
                } else if($url[1] === "s") {
                    $bookController->deleteBook($url[2]);
                } else {
                    throw new Exception("not exist");
                }
            break;
            default : throw new Exception("not exist");
          }
       }
    }
    catch(Exception $e){
      $msg = $e->getMessage();
       require "views/error.view.PHP";
     }

In my views/books.view.PHP

    <?PHP 
     ob_start(); 
      if(!empty($_SESSION['alert'])) :
      ?>
      <div class="alert alert-<?= $_SESSION['alert']['type'] ?>" role="alert">
        <?= $_SESSION['alert']['msg'] ?>
    </div>
   <?PHP 
     unset($_SESSION['alert']);
    endif; 
     ?>
      <table class="table text-center">
         <tr class="table-dark">
           <th>Title</th>
           <th colspan="2">Actions</th>
        </tr>
         <?PHP 
             for($i=0; $i < count($books);$i++) : 
          ?>
         <tr>
           <td class="align-middle"><a href="<?= URL ?>books/l/<?= $books[$i]->getId(); ?>"><?= 
         $books[$i]->getTitle(); ?></a></td>
           <td class="align-middle">
              <button class="btn btn-danger" id="sweet" data-url="<?= URL ?>books/s/<?= $books[$i]- 
                 >getId(); ?>" data-id="<?= $books[$i]->getId(); ?>">Delete</button>
            </td>
            </tr>
           <?PHP endfor; ?>
     </table>
     <button type="button"  class="btn btn-secondary disabled">Sweet</button>

     <?PHP
       $content = ob_get_clean();
        $title = "Books";
        require "template.PHP";
      ?>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
      <script>
        $(document).ready(function(){
        $(document).on('click','#sweet',function(e){
        var bookUrl= $(this).data('url'); // http://localhost/shop/books/s/5
        SwalDelete(bookUrl);
        e.preventDefault();
        });
      });
 
      function SwalDelete(bookUrl){
  
        Swal.fire({
           title: 'Delete this book ?',text: "the book was deleted in database !",icon: 'warning',showCancelButton: true,confirmButtonColor: '#3085d6',cancelButtonColor: '#d33',cancelButtonText: 'Cancel',confirmButtonText: 'Yes,delete it!',},function(isConfirm){
             if(isConfirm){
             $.ajax({
            url: bookUrl,type: "POST",success: function(resp){
              console.log('here cool !!! ');
                        window.location.href =bookUrl;
                    }
           })
          }
         return false;
      }
       );
 
      }
 
       </script>

当我单击“是,将其删除!”时按钮,弹出窗口已关闭,但我有任何操作要删除该行以及chrome导航器中我的控制台开发人员的任何错误。 传递给ajax的bookUrl是http:// localhost / shop / books / s / 5,但没有重定向到控制器,并且我没有错误消息。 有什么办法可以帮助我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...