2017-06-03 253 views
0

我使用甜蜜的警报,并且从甜蜜警报调用错误函数时出现以下错误。它从PHP文件的操作成功时工作正常。如何解决这个问题?非常感谢SweetAlert:缺少标题参数

SweetAlert: Missing "title" argument! 

这是我的javascript代码

function DeletePost() { 
    swal({ 
     title: "Sei Sicuro?", 
     text: "Questa operazione non è reversibile ed eliminerà la comunicazione i commenti ad essa connessi dal database!", 
     type: "warning", 
     showCancelButton: true, 
     confirmButtonColor: "#DD6B55", 
     confirmButtonText: "Si, elimina comunicazione!", 
     cancelButtonClass: "btn btn-danger", 
     cancelButtonText: "No, non procedere!", 
     closeOnConfirm: false, 
     closeOnCancel: false 
    }, function(isConfirm) { 
     if (isConfirm) { 

      $.ajax({ 
       url: "../delete_all.php", 
       method: "POST", 
       dataType: 'json', 

       success: function(response) { 
        // swal('Deleted!', response.message, response.status); 
        swal({ 

         title: response.title, 
         text: response.message, 
         type: response.status 

        }, 

        function(){ 

         location.reload(); 

        } 

       ); 

       }, 

       error: function(response) { 

        swal({ 

         title: response.title, 
         text: response.message, 
         type: response.status 

        }); 


       } 



      }); 

     } else { 
      swal("Annulato!", "Operazione annullata con successo!", "error"); 
     } 
    }); 
} 

这是我的PHP文件

if ($_SERVER["REQUEST_METHOD"] == "POST") { 

    // Prelevo l'id dell'amministratore e lo passo ad una variabile 
    $userid = $_SESSION['user_id']; 

    if($delete_inbox = mysqli_prepare($conn, "DELETE FROM user_inbox where user_inbox_user=? AND user_inbox_status = 'trash'")){ 

      mysqli_stmt_bind_param($delete_inbox, 'i', $userid); 
      mysqli_stmt_execute($delete_inbox); 
      mysqli_stmt_close($delete_inbox); 

    // Passo messaggio di risposta se l'operazione è andata a buon fine 
    $response['title'] = 'Messaggi eliminati!'; 
    $response['message'] = 'Tutti i messaggi sono stati eliminati con successo.'; 
    $response['status'] = 'success'; 

    }else{ 

    // Passo messaggio di risposta se l'operazione non è andata a buon fine 
    $response['title'] = 'Si è verificato un errore!'; 
    $response['message'] = 'Non è stato possibile eliminare i messaggi. Per favore contatta amministratore di sistema'; 
    $response['status'] = 'error'; 

    } 

    echo json_encode($response); 

} 
+0

你有工作吗? –

回答

0
swal({ 
    title: response.title || 'TITLE IS NOT SET', 
    text: response.message || 'MESSAGE IS NOT SET', 
    type: response.status || 'STATUS IS NOT SET' 
}, function() { 

}); 

怎么样

swal({ 
    title: JSON.parse(response.respoonseText).title 
    // ... 
}, function() { 

}); 
response = JSON.parse(response.responseText); 
swal({ 
    title: response.title || 'TITLE IS NOT SET', 
    text: response.message || 'MESSAGE IS NOT SET', 
    type: response.status || 'STATUS IS NOT SET' 
}, function() { 

}); 
+0

嗨,感谢您的回答,他们被设置到php文件中,我使用json调用它们,当操作成功时它工作正常,但如果出现错误则不会。对不起,我不明白你的答案:( – pippo

+0

你有php错误启用? –

+0

嗨是的PHP错误启用 – pippo

1

你忘了JSON的响应转换为JavaScript对象

所以这应该是所有的权利

$.ajax({ 
     url: "../delete_all.php", 
     method: "POST", 
     dataType: 'json', 
     success: function(response) { 
     // swal('Deleted!', response.message, response.status); 

     response= JSON.parse(response); 

     swal({ 
      title: response.title, 
        ... 

我加入这一行

response= JSON.parse(response); 
+0

Ciao,Gianfrancesco我试过你的解决方案,现在铬控制台给出这个错误:Uncaught SyntaxError:意外的令牌o JSON在位置1 – pippo

+0

尝试'console.log(response)'和'console.log(response.responseText)' –

+0

不应该是'response = JSON.parse(response.responseText);'? –

0

千恩万谢你的帮助,它认为问题是在PHP文件我已经改变它,现在它工作正常,我之所以要测试它的原因是我可以验证和清理变量之前,我做了一个查询数据库,我想显示一个错误如果查询无法进行

这是我的PHP文件

if ($_SERVER["REQUEST_METHOD"] == "POST") { 

    $user_id = 'prova'; 

    if (!filter_var($user_id, FILTER_VALIDATE_INT)) { 
     // Passo messaggio di risposta se l'operazione non è andata a buon fine 
    $response['title'] = 'Si è verificato un errore!'; 
    $response['message'] = 'Non è stato possibile eliminare i messaggi. Per favore contatta amministratore di sistema'; 
    $response['status'] = 'error'; 

    echo json_encode($response); 

    }else{ 

    // Prelevo l'id dell'amministratore e lo passo ad una variabile effettuaando un sanitize 
    $user_id = filter_var($_SESSION['user_id'], FILTER_SANITIZE_NUMBER_INT); 

    $delete_inbox = mysqli_prepare($conn, "DELETE FROM user_inbox where user_inbox_user=? AND user_inbox_status = 'trash'"); 

      mysqli_stmt_bind_param($delete_inbox, 'i', $userid); 
      mysqli_stmt_execute($delete_inbox); 
      mysqli_stmt_close($delete_inbox); 

    // Passo messaggio di risposta se l'operazione è andata a buon fine 
    $response['title'] = 'Messaggi eliminati!'; 
    $response['message'] = 'Tutti i messaggi sono stati eliminati con successo.'; 
    $response['status'] = 'success'; 

    echo json_encode($response); 

    } 

要生成我设置$ user_ID的错误不整

它现在不使用工作正常 标题:JSON.parse(response.respoonseText).title 或 response = JSON.parse(response);