Как открыть Modal Box при успешной обработке PHP-скрипта? - PullRequest
3 голосов
/ 03 июля 2019

У меня есть 2 файла: upload.php и process.php .

В моем файле upload.php у меня есть такая форма:

<form action="upload.php" method="post" enctype="multipart/form-data">
    <h5>Upload File</h5>
    <p>.jpg and .png only.</p>
    <input type="file" name="myfile" required> <br><br>

    <h5>Choose action</h5>
        <select class="form-control" name="action"required>
            <option>No action (Finished)</option>
            <option>Please Check</option>
        </select><br>
    <h5>Who are you</h5>
        <select class="form-control" name="uploader" required>
            <option>Person A</option>
            <option>Person B</option>
            <option>Person C</option>
        </select><br>
    <h5>Remark</h5>
        <textarea name="remark" style="resize:none; width:100%; height:100px;">-</textarea><br><br>

    <button type="submit" name="save" class="btn btn-dark btn-block">Upload</button><br>
</form>

В моем process.php :

if (isset($_POST['save'])) { // if save button on the form is clicked
    // name of the uploaded file
    $filename = $_FILES['myfile']['name'];
    $uploader = $_POST['uploader'];
    $action = $_POST['action'];
    $remark = $_POST['remark'];

    // destination of the file on the server
    $destination = 'uploads/' . $filename;

    // get the file extension
    $extension = pathinfo($filename, PATHINFO_EXTENSION);

    // the physical file on a temporary uploads directory on the server
    $file = $_FILES['myfile']['tmp_name'];
    $size = $_FILES['myfile']['size'];

    if (!in_array($extension, ['jpg','png'])) {
        echo '<script language="javascript">';
        echo 'alert("Upload failed! Your file extension must be .jpg or .png")';
        echo '</script>';
    } elseif ($_FILES['myfile']['size'] > 1000000) { // file shouldn't be larger than 1Megabyte
        echo "File too large!";
    } else {
        // move the uploaded (temporary) file to the specified destination
        if (move_uploaded_file($file, $destination)) {
            $sql = "INSERT INTO files (name, size, uploader, action, remark, downloads) VALUES ('$filename', $size, '$uploader', '$action', '$remark', 0)";
            if (mysqli_query($conn, $sql)) {
                echo '<script language="javascript">';
                echo 'alert("File uploaded successfully.")';
                echo '</script>';
            }
        } else {
            echo '<script language="javascript">';
            echo 'alert("Failed to upload file.")';
            echo '</script>';
        }
    }
}

Как мне добиться: если загрузка файла прошла успешно, появится модальное окно, которое выглядит так , чтобы сказать, что загрузка прошла успешно? Пока, как вы видите в коде, я только делаю это, показывая предупреждение.

1 Ответ

0 голосов
/ 04 июля 2019

Кажется, я только что решил свою проблему.

Я добавляю модальный файл в свой upload.php, а затем добавляю этот javascript, чтобы я мог вызвать модальное поле с помощью прямого URL.

<script type="text/javascript">

$(document).ready(function() {

  if(window.location.href.indexOf('#success') != -1) {
    $('#success').modal('show');
  }

});
</script>

Затем, в process.php, еслизагрузка прошла успешно, перенаправьте на mywebsite.com/upload.php#success

header(Location: 'upload.php#success')

Если у кого-то есть лучшее решение, не стесняйтесь поделиться им.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...