Announcement

Collapse
No announcement yet.

Simpler If Vergleich funktioniert nicht, warum?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Simpler If Vergleich funktioniert nicht, warum?

    Hey Leute,
    ich hoffe ihr könnt mir helfen. Dieser nicht funktionierende Vergleich lässt mich nur noch verzweifeln. Bin aber auch kein JavaScript Fan....

    dies funktioniert nicht:
    Code:
    		xmlhttp.onreadystatechange=function() {
    		    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
    			test = xmlhttp.responseText;
    			document.getElementById("hinweis").innerHTML=test;
    			//test ="ort";
    			if (test == "ort") {
    			    alert("Diese " + txt + " Bezeichnung existiert bereits.");
    			} else if (test == "html") {
    			    alert("Dieser " + txt2 + " Link existiert bereits.");
    			} else if (test == "fehler") {
    			    alert("Allgemeiner Fehler. Datensatz nicht gespeichert");
    			} else if (test == "ok") {
    			    location.reload(); 
    			}
    		    }
    		}
    Ich habe den code gekürze. Es wird im <p> Tag definitiv das Wort ok ausgegeben. Das heisst, im responseText ist auch das richtige drin. Nur, es funktioniert schlicht und ergreifend nicht. Wenn ich zum testen das
    Code:
    //test ="ort";
    reinnehme dann funktioniert der vergleich. Also ich verzweifele an dem bissl code.

  • #2
    Ich habe die Frage nicht verstanden:
    Welcher Vergleich funktioniert nicht?
    Wo ist da ein P-Tag?
    Warum machst du kein
    alert(test)
    und lässt dir anzeigen was im responseText drin steht?
    Was steht da drin?
    Und wenn im responseText mehr als "ok" drin steht (ein P-Tag?), dann muss ein Vergleich eben mit dem Tag erfolgen oder nur prüfen ob in dem String irgendwo "ok" drin steht
    Ggf. sich mal die Länge des Strings ausgeben lassen...Leerzeichen?
    Christian

    Comment


    • #3
      Hallo,
      sorry, seit vielen Stunden dabei. Der Vergleich If test = ort/html/ok funktioniert nicht. Im weiteren Verlauf habe ich
      Code:
      <p id="hinweis"></p>
      stehen, da wird ein "ok" ausgegeben, auch ein alert liefert mir ein "ok", jedoch sollte ja bei einem "OK" ein reload erfolgen bzw bei einem "ort" ein Hinweis...

      Hier mal die ganze Funktion:
      Code:
      	<script>
      	    function addds(land) {
      		var txt;
      		var txt2;
      		var test;
      		var eingabe = prompt("Bitte eine neue Bezeichnung eingeben:");
      		    if (eingabe == null || eingabe == "") { return; } else { txt = eingabe;	}
      		var eingabe2 = prompt("Bitte einen Link eingeben:");
      		    if (eingabe2 == null || eingabe2 == "") { return; } else { txt2 = eingabe2; }		
      		    
      		if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }		
      		
      		xmlhttp.onreadystatechange=function() {
      		    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      			test = xmlhttp.responseText;
      			document.getElementById("hinweis").innerHTML=test;
      			//test ="ort";
      			if (test == "ort") {
      			    alert("Diese " + txt + " Bezeichnung existiert bereits.");
      			} else if (test == "html") {
      			    alert("Dieser " + txt2 + " Link existiert bereits.");
      			} else if (test == "fehler") {
      			    alert("Allgemeiner Fehler. Datensatz nicht gespeichert");
      			} else if (test == "ok") {
      			    location.reload(); 
      			}
      		    }
      		}
      		xmlhttp.open("GET","addsubmenu.php?wert="+txt + "&html=" + txt2 + "&land=" + land ,true);
      		xmlhttp.send();
      	    }               	    
      	</script>
      EDIT:
      Ahja, wenn ich das php so umbaue das responseText eine Zahl zurück gibt, und ich den If Block auf
      Code:
      			if (test == 1) {
      			    alert("Diese " + txt + " Bezeichnung existiert bereits.");
      			} else if (test == 2) {
      			    alert("Dieser " + txt2 + " Link existiert bereits.");
      			} else if (test == 8) {
      			    alert("Allgemeiner Fehler. Datensatz nicht gespeichert");
      			} else if (test == 9) {
      			    location.reload(); 
      			}
      ändere, dann funktioniert alles wie es soll.... Damit kann ich leben, dann vergebe ich halt Nummern für die Ausgabe, aber es wurmt mich nicht zu wissen warum es mit textstrings nicht funktioniert.
      Zuletzt editiert von HarGrove; 31.10.2017, 15:56.

      Comment


      • #4
        Mal die Länge geprüft.....
        Zuletzt editiert von Christian Marquardt; 31.10.2017, 16:03.
        Christian

        Comment


        • #5
          Gnarf......

          Ein "ort" ergibt eine Length von 4...... Das wird wohl ein space mitgesendet..... Verflixt.

          Dank dir für diesen wertvollen Hinweis.

          Comment


          • #6
            Benutze dann

            https://www.w3schools.com/jsref/jsref_indexof.asp

            dann muss ein Vergleich eben mit dem Tag erfolgen oder nur prüfen ob in dem String irgendwo "ok" drin steht
            Christian

            Comment


            • #7
              Vielen Dank.

              Ich bin dabei auf includes gestoßen, damit klappt das jetzt. Und jetzt geh ich lieber an die frische Luft, sonst mache ich noch mehr so dusselige fehler.

              Comment

              Working...
              X