2017-06-03 2 views
0

Ich benutze süße Warnung und ich habe den folgenden Fehler, wenn die Fehlerfunktion von süßen Alarm aufgerufen wird. Es funktioniert gut, wenn die Operation aus den PHP-Dateien erfolgreich ist. Wie kann dieses Problem gelöst werden? Vielen DankSweetAlert: Fehlendes Titelargument

SweetAlert: Missing "title" argument! 

Dies ist mein Javascript-Code

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"); 
     } 
    }); 
} 

Und das ist meine PHP-Datei

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

Hast du es funktioniert? –

Antwort

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

}); 

was

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

Hallo danke für deine Antwort, sie sind in der PHP-Datei eingestellt und ich rufe sie mit json, es funktioniert gut, wenn die Operation erfolgreich ist, aber nicht, wenn es einen Fehler gibt. Entschuldigung, ich verstehe Ihre Antwort nicht :( – pippo

+0

Sie haben PHP-Fehler aktiviert? –

+0

Hallo ja PHP-Fehler ist aktiviert – pippo

1

Sie haben vergessen, json Antwort auf JavaScript-Objekt

So sollte es sein alles in Ordnung

$.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, 
        ... 

Ich habe diese Zeile

response= JSON.parse(response); 
+0

Ciao, Gianfrancesco Ich habe Ihre Lösung versucht und jetzt Chrom-Konsole gibt diesen Fehler: Uncaught SyntaxError: Unerwartete Token o in JSON an Position 1 – pippo

+0

versuchen Sie 'console.log (response)' und 'console.log (response.responseText)' –

+0

sollte es nicht 'response = JSON.parse (response.responseText);'? –

0

vielen Dank für konvertieren Ihre Hilfe, denkt es Das Problem war in der PHP-Datei, ich habe es geändert und jetzt funktioniert es gut, der Grund, warum ich es testen wollte ist, damit ich die Variable validieren und bereinigen kann, bevor ich eine Abfrage an die Datenbank mache, und ich wollte einen Fehler anzeigen wenn die Abfrage nicht

durchgeführt werden kann

Dies ist meine pHP-Datei

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); 

    } 

Um den Fehler zu erzeugen i $ user_id festgelegt haben als nicht integer

Es ist jetzt gut funktioniert ohne Verwendung Titel: JSON.parse (response.respoonseText) .title oder Antwort = JSON.parse (Antwort);