2017-06-08 7 views
-1

Ich versuche, die Ajax-Antwort aus dem Code unten zu alarmieren, aber irgendwie wird nichts alarmiert.jquery kann keine Ajax-Antwort melden

function get_fee(){ 
     if ($('#type').val() == 'hardcopy') { 
      setTimeout(function(){ 
       var title = $('#title').val(); 
       $.ajax({ 
        type: 'POST', 
        url: 'convert.php', 
        data: {hardcopy: '1', title: title}, 
        success: function(response) { 
         if (response == 'false') { 
          alert(response); 
         } 
        } 
       }); 
      }, 1000); 
     } 
    } 

Wenn jedoch der obige Code ohne

if (response == 'false') { 

    } 

geschrieben wurde und die alert(response) genannt wird, funktioniert es einwandfrei. Ich hätte den späteren Ansatz übernommen, aber leider kann der Wert var response entweder wahr oder falsch sein.

+7

ist "Antwort" ein Boolean? –

+0

Wie lautet Ihre Antwort? – Nagaraju

+1

schreiben Sie 'conlose.log (response)' und aktualisieren Sie die Frage mit dem Ergebnis –

Antwort

0

schließlich das Problem gelöst.
Die Antwort gibt eine Zeichenfolge als Wert und nicht als Boolean zurück.
Also änderte ich seine Datentyp boolean, bevor es von Ajax (von ‚falsch‘ mit Anführungszeichen falsch ohne Anführungszeichen) empfangen wird, und ich war in der Lage es als Booleschen mit

if (response == false) { 
    alert(response); 
} 

Vielen Dank an alle zu bewerten, die beigetragen.

+0

Es ist das gleiche wie meins. – hamzox

0

Versuchen Sie, die Zitate aus der ganzen 'false'

if (response == false) { 

    } 

oder nur

if (!response) { 

    } 
+0

Ich habe das getan, aber nichts passiert. – ebuka

1

Verwenden Ausziehen:

if (response) { 
     alert(response); 
} else { alert("Some Error Message"); } 
+0

Warum etwas warnen, das nicht existiert? – charlietfl

+0

Schön. Jetzt existieren. – hamzox

+0

@hamzox die Warnung zeigt nicht immer noch mit Ihrem Code – ebuka

0
  1. Sie brauchen nicht das tun uble ("") gibt einen booleschen Wert an.

    if (response == false) { 
        alert(response); 
    } 
    
  2. Sie verwenden können:

    error: function(response){ 
        alert(response); 
    } 
    
+0

Die Ajax echos entweder wahr oder falsch als Antwort, so dass ich die Werte in doppelte Anführungszeichen eingeschlossen, bevor es Echo ist. – ebuka

+0

Ich verstehe, aber warum nicht verwenden Sie Komplement (!) Als ob (! Antwort) anstelle der booleschen wahr/falsch? –

+0

Das Problem wurde behoben. Ich änderte es in einen booleschen Wert wie in true (ohne die Anführungszeichen) und es funktionierte gut. Danke für Ihr Bemühen. – ebuka

0

Wenn Sie die Saiten "true" oder "false" senden, versuchen zusätzliche Leerzeichen zu entfernen, die dort von PHP-Datei sein könnte:

if (response.trim() == 'false') { 
    alert(response); 
} 
0

Sie können folgende Optionen haben: Verwenden Sie eine beliebige Option von ihnen:

1) Wie für boolean Vergleich Verwendung Sprache nicht so falsch statt 'false' für

if (Antwort == false) {

} 

2) direkt Antwort verwenden Marken verwenden Entscheidungs ​​

if (! Antwort) {

} 

3) if (Antwort == false) alert ("was auch immer Sie wollen, setzen")

4) if (! Response) alert ("was auch immer Sie setzen wollen")

+0

Die Antwort ist eine Zeichenfolge, aber hat den Wert von false. Also im Grunde kann ich nicht wie im booleschen Format – ebuka

+0

false verwenden dann versuchen Sie mit === anstelle von == –

+0

Antwort ist eine Zeichenfolge mit dem Wert false. Daher kann ich die Antwort nicht als Boolean auswerten, da der andere Wert der Antwort, wenn sie nicht falsch ist, auch eine Zeichenfolge ist. – ebuka