代码之家  ›  专栏  ›  技术社区  ›  Csisanyi

只有在开发人员工具中设置了调试点时,Javascript/ajax脚本才能工作

  •  1
  • Csisanyi  · 技术社区  · 7 年前

    我正面临以下问题,似乎无法解决。 我们正在开发一个与CodeIgniter3网站。 用于将文件上载到我使用的站点Dropzone.js文件

    我想实现以下目标: addRemoveLinks:真

    同时,我将文件参数(id、名称、大小等)保存到数据库中。 在这个站点上,视频缩略图是基于数据库行加载的,所以当取消上载时,我想从db中删除相关的行。

    问题是,我的代码只有在Chrome开发工具中设置调试点时才能工作,但是代码的处理时间仍然很长。

    这是我的密码页脚

    <!-- Bootstrap core JavaScript -->
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    
    <!-- JS file -->
    <script src="<?php echo asset_url(); ?>js/autocomplete/jquery.easy-autocomplete.min.js"></script> 
    
    <!-- CSS file -->
    <link rel="stylesheet" href="<?php echo asset_url(); ?>js/autocomplete/easy-autocomplete.css"> 
    
    <!-- Tables -->
    <script type="text/javascript" src="https://cdn.datatables.net/v/bs4/dt-1.10.18/datatables.min.js"></script>
    
    <!-- Upload -->
    <script src="<?php echo asset_url(); ?>js/dropzone.js"></script>
    
    <script>
    Dropzone.options.dropzonejsform = {
        maxFilesize: 20000,
        addRemoveLinks: true,
        dictCancelUpload: "<p style =\"font-size:115%; display:block\">Cancel upload<p>",
        dictRemoveFile: "",
        dictDefaultMessage: "<h3>Drag'n'drop files <br> or <button type='button' class='btn btn-outline-success' value='Upload'>click here</button> to upload</h3>",
        init: function() {
    
            this.on("removedfile", function(file) {
                var name = file.name;
                $.ajax({
                    cache: false,
                    url: './delete2/' + name,
                    type: "GET",
                    success: function(html) {
                        location.reload();
                    }
                });
    
            });
    
            this.on("queuecomplete", function() {
                location.reload();
            });
        }
    }
    
    </script>
    

    出于某种原因,如果没有$ajax的调试点,代码不会从db中删除。 有什么建议吗?

    @亚历克斯,这是上传和删除功能

    public function delete_video2($video_name){
    
        $this->db->where('video_name', $video_name);
        $this->db->delete('videos');        
    
    }
    
    // Add Video
    public function add_video()
    {
    
        $this->load->helper('url');
    
        //allowed file types
        $arr_file_types = ['video/mp4', 'video/avi', 'video/mov', 'video/3gp', 'video/mpeg'];
    
        // Target Path
        $target_dir = "./assets/upload/";
        // Assigining Random Name
        $File_Name          = $_FILES["file"]["name"];          // Get file name
        $File_Size          = $_FILES["file"]["size"];          // Get file name
        $File_Ext           = substr($File_Name, strrpos($File_Name, '.')); // Get file extention
        $Random_Number      = rand(0, 9999999999);                          // Random number to be added to name.
        $NewFileName        = $Random_Number.$File_Ext;                     // New file name
    
        // Uploading name to dataase
    
        move_uploaded_file($_FILES['file']['tmp_name'], $target_dir.$NewFileName);
        // echo "true";
        // die();
    
        $user = $this->ion_auth->user()->row();
        $id = $user->id;
    
        $data = array(
            'reference_id' => $File_Ext,
            'user_id' => $id,
            'video_name' => $File_Name,
            'video_url' => $NewFileName,
            'video_size' => $File_Size,
        );
    
        return $this->db->insert('videos', $data);
    
    }
    

    释放视图的部分

    <!-- Button to Open the Modal -->
    <button type="button" class="btn btn-outline-upload" style="font-size:20px;" data-toggle="modal" data-target="#myModal">
      <i class="fa fa-plus-square"></i> Upload New Video
    </button>
    
    <!-- Upload Modal -->
    <div class="modal" id="myModal">
      <div class="modal-dialog-index" style="max-width:350px">
        <div class="modal-content">
    
          <!--Dropzone upload form-->
          <?php $attributes = array('id' => 'dropzonejsform', 'class' => 'dropzone', 'enctype' => 'multipart/form-data' ); ?>
          <?php echo form_open("upload", $attributes);?>
          <?php echo form_close();?>
    
        </div>
      </div>
    </div>
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   katy    7 年前

    在发出删除请求之前,请确保数据库已完成对etc.的写入,并且处于删除条目的状态。