как я могу получить предупреждение в случае успеха и неудачи - PullRequest
0 голосов
/ 21 января 2019

У меня проблема: как я могу отобразить предупреждение в этой ситуации? Это предупреждение показывает то же самое предупреждение, когда оно передает или не передает данные в базу данных.

Я попробовал метод успеха и ошибки, но все равно ничего не получил.

ajax.php:

 $(document).ready(function(){  
    $('#addDocumentForm').on('submit', function(e){  
  $('#select_image').change(function(){
       $('#addDocumentForm').submit();  
  });  

       e.preventDefault();  
       $.ajax({  
            url :"main.php",  
            method:"POST",  
            data:new FormData(this),  
            contentType:false,  
            processData:false,  
            success:function(data){

            location.reload(true);

            }
       })  
  });  

main.php:

 if (!in_array($fileExtension,$fileExtensions)) {
   echo "<script type='text/javascript'>alert('asd');</script>";

    }else if (in_array($fileExtension,$fileExtensions)) {

    $stmt = $dbh->prepare("insert into document values('',?)");
    $stmt->bindParam(1,$filename);
    $stmt->execute();
   echo "<script type='text/javascript'>alert('asd');</script>";

Я поместил оповещение как это в main.php, но не работает, только показывать оповещение в ajax.php. Я также хочу получать оповещения, когда данные не удается вставить в базу данных, например «файл должен быть изображением» или «успешно добавлен», если данные вставлены успешно.

1 Ответ

0 голосов
/ 21 января 2019

Когда вы находитесь в другом файле, отображение сценария не влияет на другой файл, из которого был отправлен запрос AJAX. Однако вы можете использовать параметр data, предоставленный функцией успеха AJAX, и добавить полученный скрипт к телу:

$.ajax({  
    url: "main.php",  
    method: "POST",  
    data: new FormData(this),  
    contentType: false,  
    processData: false,  
    success: function(data){
        // append script to the body
        $('body').append(data);
    }
});

Вы также можете повторить строку, которую вы хотите предупредить в main.php и использовать alert(data) непосредственно из обратного вызова, вместо этого, и I действительно предлагаю вам это сделать, но в конце концов это ваш выбор.

РЕДАКТИРОВАТЬ (решение для последнего)

main.php

if (!in_array($fileExtension,$fileExtensions)) {
   echo "asd";
// etc ...

ajax.php

{
    success: function(data) {
        // alerts echoed content if any
        if(data) alert(data); 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...