kostenloser Webspace werbefrei: lima-city


request.responseText

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hallo,

    ich nutze folgende Funktion um Daten im Hintergrund zu versenden, was soweit auch funktioniert.
    function send_loos(){
      request = new XMLHttpRequest();
      if (!request) {
    	  alert("Kann keine XMLHTTP-Instanz erzeugen");
    	  return false;
      } else {
    	  var url = '?p=huaaaahuaaahuaaa&c='+id_ghost+'';
    	  request.open('get', url, true);
    	  request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    	  request.onreadystatechange = success; //functionsname, der zum auswerten benutzt wird
    	  request.send();
    	  
      }
    }


    Über die aufgerufene
    url
    wird ein PHP Programm gestartet welches Prüfungen Durchführt. Wenn ich diese Seite nun manuell anspreche könnte ich mir ja das Ergebnis mit echo ausgeben lassen, meine Frage ist nun, wie bekomme ich das Ergebnis in meine Javascript als Antwort.

    Gefunden habe ich dazu folgendes Snippet, was wohl für mein logisches Denken das tut was ich gern möchte, es legt mir die Antwort in die Variable
    rt
    . Funktioniert aber leider nicht, das Script bricht dann ab wenn ich mir
    rt
    ausgeben lasse.

    function  success(){
    if(request.readyState == 4 && request.status == 200){
    //hier wird dann ausgewertet, wird nur hierrein gegangen, wenn es fertig ist, underfolgreich war , also kein 404 oder 500 oder so
    var rt = request.responseText; //string, der text, der zurück gegeben wurde
    }
    }


    Bi für jeden Tipp, Link ectr. Dankbar..

    LG Marco


    Beitrag zuletzt geändert: 12.2.2015 14:59:07 von aff3m1tw4ff3
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hey
    Das nennt sich Ajax und ist mit reinem JavaScript für die meisten recht unverständlich. Dein Code ist allgemein unübersichtlich. Hab mir das ganze nicht lange angeschaut, aber deine URL scheint auch nicht zu stimmen.

    function ajax() {
        var xmlhttp;
    
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        } else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 ) {
               if(xmlhttp.status == 200){
                   alert(xmlhttp.responseText);
               }
               else if(xmlhttp.status == 400) {
                  console.log('There was an error 400')
               }
               else {
                   console.log('something else other than 200 was returned')
               }
            }
        }
    
        xmlhttp.open("GET", 'deine_datei.php', true);
        xmlhttp.send();
    }


    Einfacher geht das aber mit jQuery, dazu musst du das script im head einbinden:
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    Danach kannst du viele Dinge einfacher lösen, z.B. ajax:

    $.get("deine_datei.php", function(data){
        alert(data);
    });

    In beiden Fällen wird dir dein Echo als alert ausgegeben. Du kannst natürlich damit machen, was du willst. Das z.B. in nen div schreiben.
  4. hallo aff3m1tw4ff3,


    hast du schon mal darüber nachgedacht jquery zu benutzen ?
    damit geht das ajax-ding nämlich super einfach und direkt:
    <script type="text/javascript">
    	$.get( "index.php", { p: "huaaaahuaaahuaaa", c: id_ghost } )
    		.done(function( data ) {
    		var rt = data;
    
    		alert(rt);		
    
    	});
    </script>



    lg hechma
  5. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hi,

    danke für die Hilfe fürs erste, mit jqeury habe ich es auch schon probiert, hatte damit aber keinen Erfolg. Da Ihr es mir nun wieder ans Herz legt mache ich es damit weiter, sieht auch bei weitem leichter aus.

    Das Problem ist halt das bei mir nichts ausgeführt wird. jquerry ist eingebunden, ich verwende es auch schon für andere Sachen und das läuft.

    function lose() {
    
    var id_ghost = 6666666;
    
        $.get( "../v2/include/geisterjagd.php", {c: id_ghost } )
            .done(function( data ) {
            var rt = data;
     
            alert(rt);     
        });
    
    // infoanzeige ausblenden
    function ausblenden_ursi(){
    ergebnissmeldung_rot.remove();
    
    }


    So sieht nun die Funktion bei mir aus, macht aber nicht das was Sie soll. Die Datei geisterjagd.php liegt im gleichen Verzeichnis wie die Datei aus der Sie angesprochen werden soll, hab beim Pfad schon alles probiert, darum bin ich schon bis zur kompletten Angabe. Das alert springt allerdings nicht mal an.

    Führe ich die Funktion ohne URL aus, wird zumindest mein Source als alert ausgegeben, dann reagiert es also zumindest.

    Ich verstehe das einfach nicht. :(

    LG Marco
  6. nun dann würde mich mal interessieren was die java-script-konsole dazu sagt... vielleicht eine fehlermeldung ? (zb in chrome mit strg+umschalt+j)

    interessant wäre auch welche meldung dein ajax-call zurückgibt... kannst du zb so herausfinden:
    $.ajaxSetup({
      error: function(xhr, status, error) {
        alert("An AJAX error occured: " + status + "\nError: " + error);
      }
    });
    (vor den ajax-calls einmal ausführen)

    bei dem von dir zuletzt geposteten teil fehlt anscheinend die schließenden geschweifte klammer der function lose...

    bedenke das der aufruf ja im browser des user stattfindet - also eine vollständige pfadangabe ala http://domain.de/pfad/datei.php wäre tatsächlich gut. ist deine php-datei denn auch von außen erreichbar ? oder ist dein include-ordner vielleicht für zugriffe von außen gesperrt ?

    Beitrag zuletzt geändert: 13.2.2015 10:40:30 von hechma
  7. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hi,

    ich habe den Fehler nun gefunden, es lag an einem Funktionsaufruf in der angesprochenen Datei. Nun macht es genau das was es soll und ich bekomme auch die Antwort richtig zurück. Danke für die Hilfe, allein das ich es nun mit Jquery mache erleichtert die Sache ja enorm.
    Also danke wiedermal und ein schönes WE Euch
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!