Ergebnis 1 bis 7 von 7
  1. #1
    MsDos ist offline Grünschnabel
    registriert
    05-03-2013
    Beiträge
    7

    Question Ajax PHP-Datei auslesen

    Hallo,

    ich wange mich so langsam an ajax dran.
    Nun hänge ich aber an einer stelle fest.
    Ich habe ein Ajax-Script welches mir eine PHP-Datei mit GET aufruft.
    Ich möchte nun aber das ich auch noch einfach die Ausgabepunkte wechselt.

    HTML (test1.php)
    HTML-Code:
    <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN'
       'http://www.w3.org/TR/html4/strict.dtd'>
    <html>
    <head>
    	<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
    	<title>Test</title>
    	<script type="text/javascript" lang="javascript" src="./js/ajax.js"></script>
    <style type="text/css">
    #ajax{
    	background:			#555;
    }
    
    #ajaxAusgabe{
    	background:			#ddd;
    }
    
    *{
    	outline:	0;
    }
    </style>
    </head>
    
    <body>
    	<div id='ajax'></div>
    	<p>Bitte wählen Sie eine Stadt:</p>
    
    	<form action=''>
    		<select onChange='return ajaxAnzeige("test.php?wert=" + this.value, this.element)'>
    			<option element="ajaxAusgabe" value='Berlin'>Berlin</option>
    			<option element="ajax" value='Hamburg'>Hamburg</option>
    			<option element="ajaxAusgabe" value='Frankfurt'>Frankfurt</option>
    		</select>
    	</form>
    
    	<div id='ajaxAusgabe'></div>
    
    </body>
    </html>
    Ajax
    Code:
    var xmlhttp_ajaxAnzeige;
    
    function ajaxAnzeige(str, element)
    {
    	xmlhttp_ajaxAnzeige=GetXmlHttpObject();
    	if (xmlhttp_ajaxAnzeige==null)
    	{
    		alert ("Browser does not support HTTP Request");
    		return false;
    	}
    			  		
    	url=str;
    	xmlhttp_ajaxAnzeige.onreadystatechange=stateChanged_ajaxAnzeige;
    	xmlhttp_ajaxAnzeige.open("GET",url,true);
    	xmlhttp_ajaxAnzeige.send(null);
    
    	document.getElementById("ajaxAusgabe").innerHTML="<img src='./img/loadings/loading1.gif' />";
    
    	return false;
    }
    
    function stateChanged_ajaxAnzeige()
    {
       if (xmlhttp_ajaxAnzeige.readyState==4)
       {
       document.getElementById("ajaxAusgabe").innerHTML=xmlhttp_ajaxAnzeige.responseText;
       }
    }
    
    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
      {
      //ie7+, firefox, chrome, opera, safari
      return new XMLHttpRequest();
      }
    if (window.ActiveXObject)
      {
      //ie6,ie5
      return new ActiveXObject("Microsoft.XMLHTTP");
      }
    return false;
    }
    
    
    // - - - - - - - - - - - - Mein fehlgeschlagener Versuch
    
    
    
    var xmlhttp_ajaxAnzeige;
    
    function ajaxAnzeige(url, element)
    {
    	xmlhttp_ajaxAnzeige=GetXmlHttpObject();
    	if (xmlhttp_ajaxAnzeige==null)
    	{
    		alert ("Browser does not support HTTP Request");
    		return false;
    	}
    			  		
    	xmlhttp_ajaxAnzeige.onreadystatechange=stateChanged_ajaxAnzeige(element);
    	xmlhttp_ajaxAnzeige.open("GET",url,true);
    	xmlhttp_ajaxAnzeige.send(null);
    
    	document.getElementById(element).innerHTML="<img src='./img/loadings/loading1.gif' />";
    
    	return false;
    }
    
    function stateChanged_ajaxAnzeige(element)
    {
       if (xmlhttp_ajaxAnzeige.readyState==4)
       {
       document.getElementById(element).innerHTML=xmlhttp_ajaxAnzeige.responseText;
       }
    }
    
    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
      {
      //ie7+, firefox, chrome, opera, safari
      return new XMLHttpRequest();
      }
    if (window.ActiveXObject)
      {
      //ie6,ie5
      return new ActiveXObject("Microsoft.XMLHTTP");
      }
    return false;
    }
    PHP Datei (test.php)
    PHP-Code:
    <?php
     
    echo "Sie haben <b>".$_GET["wert"]."</b> ausgewählt!";
     
    sleep(1);
    ?>
    Wenn ich nun bei:
    Code:
    document.getElementById("ajaxAusgabe")
    einfach das in:
    Code:
    document.getElementById("ajax")
    ändere dann geht nix mehr.
    Warum?
    Wie muss man das um schreiben das man das auch über das Select-Element bestimmen kann in welches div das ausgeben werden kann?

  2. #2
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Ajax PHP-Datei auslesen

    Zitat Zitat von MsDos Beitrag anzeigen
    Wenn ich nun bei:
    Code:
    document.getElementById("ajaxAusgabe")
    einfach das in:
    Code:
    document.getElementById("ajax")
    ändere dann geht nix mehr.
    Warum?
    http://forum.jswelt.de/javascript-fa...erkonsole.html (Wo finde ich die Fehlerkonsole?)

  3. #3
    MsDos ist offline Grünschnabel
    registriert
    05-03-2013
    Beiträge
    7

    AW: Ajax PHP-Datei auslesen

    Zeigt mir keinen Fehler an.
    Komisch ist, dass er das Img ganz kurz in das richtige Packt, aber sobald das die PHP-Datei geladen hat verschwindet das div

  4. #4
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Ajax PHP-Datei auslesen

    Zitat Zitat von MsDos Beitrag anzeigen
    Zeigt mir keinen Fehler an.
    Bist du sicher? Bei mir zeigt dein Code einen Fehler an.

  5. #5
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Ajax PHP-Datei auslesen

    Das sehe ich jetzt erst:
    Zitat Zitat von MsDos Beitrag anzeigen
    Wie muss man das um schreiben das man das auch über das Select-Element bestimmen kann in welches div das ausgeben werden kann?
    Wie kommst du auf dieses Attribut?
    Ein option Element hat kein "element" Attribut infolge dessen wird deiner Funktion auch kein Wert übergeben - was zu der von mir erwähnten Fehlermeldung führt.
    Wenn du aber unbedingt ein zusätzliches attribut verwenden möchtest, dann benutze das in HTML5 eingeführte Attribut data- HTML5: Eigene Attribute für Elemente erstellen » t3n - Das Magazin für Digitales Business | we love technology
    Aber du musst dann bei der Übergabe auch darauf achten, dass du das selektierte option Element ansprichst.

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.695

    AW: Ajax PHP-Datei auslesen

    Ein globales XHR-Objekt kann ziemliche Probleme verursachen - versuche das zu ändern.

    In deinem Versuch weist du den .onreadystatechange-Eventlistener keine Funktionsreferenz mehr zu, sondern den Rückgabewert der Funktion stateChanged_ajaxAnzeige()... und das ist undefined.
    Um dennoch den element-Parameter an die Funktion übergeben zu können, kannst du eine anonyme Funktion verwenden... dabei kannst du die Funktion auch gleich löschen, da die der Grund für das globale XHR-Objekt ist, und gleich komplett mit einer anonymen Funktion arbeiten...

  7. #7
    MsDos ist offline Grünschnabel
    registriert
    05-03-2013
    Beiträge
    7

    AW: Ajax PHP-Datei auslesen

    okay, vielen Dank für den Tipp.

Ähnliche Themen

  1. XML Datei auslesen
    Von ydnaso im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 10-12-2008, 11:18
  2. XML Datei mit PHP auslesen
    Von ray_ray im Forum Serverseitige Programmierung
    Antworten: 2
    Letzter Beitrag: 10-05-2006, 15:23
  3. Header aus JPG-Datei auslesen und Werte in Datei schreiben
    Von tsochart im Forum Serverseitige Programmierung
    Antworten: 4
    Letzter Beitrag: 24-09-2005, 21:02
  4. Antworten: 0
    Letzter Beitrag: 19-09-2005, 11:48
  5. Datei auslesen...
    Von alex75 im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 03-07-2002, 23:38

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •