如何防止加载多个脚本文件

时间:2019-07-11 11:54:29

标签: javascript php html

我有一个网站,可以在其中选择Excel文件。选择后,我在fileselect下的html表中打印文件数据(用于检查和编辑)。表格下方是一些按钮,其中之一是将表格数据上传到数据库。为此,我要通过按钮单击JS函数,在其中将表数据存储在多维数组中。要上传数据,我将数组发布到我的php文件中。成功上传后,我想显示一个模态。那就是我的问题是:模态没有出现。
这是我的简短代码:

home.php (带有fileselect的网站的html)

<!doctype html>
<html lang="de">
    <head>
        <script src="../js/bootstrap/jquery.slim.min.js"></script>
        <script src="../js/bootstrap/popper.min.js"></script>
        <script src="../js/bootstrap/bootstrap.min.js"></script>
        <script src="web.js"></script>
    </head>
    <body>
        <div class="container">
            <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
                <div class="input-group">
                    <label class="input-group-btn">
                        <span class="btn btn-primary">
                            Datei auswählen&hellip; <input type="file" name="file" style="display: none;">
                        </span>
                    </label>
                    <input type="text" class="form-control" readonly>
                </div>              
                </br>
                <button id="excelBtn" type="submit" class="btn btn-success btn-block">Excel-Datei anzeigen</button>                                                        
            </form>
            <?php
            if(isset($_FILES['file'])){     //executed after fileselect 
                include "upload.php";      //show file as table on website, works fine
            }

            if(isset($_POST['data'])){     //is executed when returning from JS
                //upload all array data
                //after successful upload do:
                include "modal_success.php";  //this php works, will not show extra
            }
        ?>
        </div>
    </body>
</html>

编辑:modal_success.php

<div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="false">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Speichern</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                Die Daten des Mitarbeiters wurden erfolgreich in die Datenbank geschrieben.
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-warning" onClick="geheZuHome()">Zurück zur Startseite</button>
                <button type="button" class="btn btn-warning" onClick="window.location.href=window.location.href">Weitere Datei hochladen</button>
            </div>
        </div>
    </div>
</div>
<script> 
    $("#modal").modal("show");
</script>

upload.php

<!-- print data as table -->
<form  action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
    <button id="exBtnEnable" type="button" class="btn btn-info btn-block" disabled=false onclick="editTable(<?php echo $taID ?>)">Bearbeiten aktivieren</button>
    <button id="exBtnHoch" name="exBtnHoch" onclick="saveInArray()" type="button"  class="btn btn-success btn-block">Excel-Datei hochladen</button>
    <button id="exBtnAbbr" type="button" onClick="window.location.href=window.location.href" class="btn btn-secondary btn-block">Abbrechen</button>
</form>

我的 web.js

function saveInArray(){
    //save data in array
    var arrString = JSON.stringify(tableData);
    var request = new XMLHttpRequest();
    request.open('post', 'home.php', true);
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.send('data=' + arrString);
}

首先,我有一个save.php文件,该文件是我上载到数据库的,但是对于模态来说,它是错误的位置。因此,我将所有代码带到了home.php。现在位置正确,但不会再显示。 我认为home.php(bootstrap javascript)中的多个文件绑定可能存在问题。你能确认吗?或者我该如何解决?

这是我接手的项目,因此大多数结构都已经存在。

1 个答案:

答案 0 :(得分:0)

在您的start %>% group_by(grp = as.numeric(as.factor(status)), grp = cumsum(c(TRUE, diff(grp) != 0))) %>% slice(if (first(status) == "open") seq_len(n()) else 1L) 更改中

home.php

$_POST['data']

或在您的$_POST['daten'] 更改中

web.js

request.send('daten=' + arrString);

,模态应该起作用。

编辑:

我现在看到了问题( s )。

  1. 您将request.send('data=' + arrString); 加载到哪里?
  2. 即使调用了web.js,响应也不会做任何事情。

可能(但脏)解决方案:

更改您的saveInArray

web.js

这会使用jQuery's post函数进行AJAX调用并替换整个正文。