我如何通过成功和失败来获得警报

时间:2019-01-21 03:21:30

标签: php ajax

我有问题:在这种情况下如何显示警报? 当警报确实向数据库传递数据或不向数据库传递数据时,该警报也会显示相同的警报。

我尝试了成功和错误的方法,但仍然没有得到任何结果。

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 :(得分:0)

当您在其他文件中时,回显脚本不会影响发送AJAX请求的另一个文件。但是,您可以使用AJAX成功函数提供的data参数,并将收到的脚本附加到正文中:

$.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) ,我真的建议您这样做,但最终由您选择。

编辑(后者的解决方案)

main.php

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

ajax.php

{
    success: function(data) {
        // alerts echoed content if any
        if(data) alert(data); 
    }
}