Ergebnis 1 bis 5 von 5
  1. #1
    djtorte ist offline Grünschnabel
    registriert
    04-01-2008
    Beiträge
    3

    Frage zu AJAX und Kompatibiliät der Browser

    Hi Leute,

    baue grade eine Community auf. Ich habe auf dieser Seite hier:
    www.sharkfans.de/profil.php?id=1
    rechts Zufallsbilder, die ich per AJAX immer wieder nachlade.
    Klappt im Internetexplorer ohne Probleme... Nur:
    Firefox, Opera etc - Fehlanzeige.... geht net, besser gesagt.
    (Javascript überall aktiviert...)

    Woran kann das liegen?
    Hier mein Script:

    Zuerste Javascript, direkt im Dokument:
    Code:
    <script type="text/javascript">
    //Instanz der Klasse Ajax erzeugen und mit der Datenübertragung starten
    function load()
    {
    
      var eingabe=document.getElementById("eingabe").value;
        
      with (new Ajax()){
      
        url="ajax_profil_lastpix.php";
        method="POST";
        params="eingabe="+eingabe;
        onSuccess=successHandler;
        onError=errorHandler;
        doRequest();
      }
      
      
    //Den Text in die Seite einfügen
    function successHandler(txt,xml){
      document.getElementById("text").innerHTML=txt;
      
    }
    
    //Fehler
    function errorHandler(msg){
      document.getElementById("text").innerHTML=msg;
    }
    
    }
    
    
    function Ajax() {
      //Eigenschaften deklarieren und initialisieren
      this.url="";
      this.params="";
      this.method="GET";
      this.onSuccess=null;
      this.onError=function (msg) {
        alert(msg)
      }
    }
    
    Ajax.prototype.doRequest=function() {
      //Üeberpruefen der Angaben
      if (!this.url) {
        this.onError("Es wurde kein URL angegeben. Der Request wird abgebrochen.");
        return false;
      }
    
      if (!this.method) {
        this.method="GET";
      } else {
        this.method=this.method.toUpperCase();
      }
    
      //Zugriff auf Klasse für readyStateHandler ermöglichen  
      var _this = this;
      
      //XMLHttpRequest-Objekt erstellen
      var xmlHttpRequest=getXMLHttpRequest();
      if (!xmlHttpRequest) {
        this.onError("Es konnte kein XMLHttpRequest-Objekt erstellt werden.");
        return false;
      }
      
      //Fallunterscheidung nach Übertragungsmethode
      switch (this.method) {
        case "GET": xmlHttpRequest.open(this.method, this.url+"?"+this.params, true);
                    xmlHttpRequest.onreadystatechange = readyStateHandler;
                    xmlHttpRequest.send(null);
                    break;
        case "POST": xmlHttpRequest.open(this.method, this.url, true);
                     xmlHttpRequest.onreadystatechange = readyStateHandler;
                     xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                     xmlHttpRequest.send(this.params);
                     break;
      }  
    
      //Private Methode zur Verarbeitung der erhaltenen Daten
      function readyStateHandler() {
        if (xmlHttpRequest.readyState < 4) {
          return false;
        }
        if (xmlHttpRequest.status == 200 || xmlHttpRequest.status==304) {
          if (_this.onSuccess) {
            _this.onSuccess(xmlHttpRequest.responseText, xmlHttpRequest.responseXML);
          }
        } else {
          if (_this.onError) {
            _this.onError("["+xmlHttpRequest.status+" "+xmlHttpRequest.statusText+"] Es trat ein Fehler bei der Datenbertragung auf.");
          }
        }
      }
    }
    
    //Gibt browserunabhängig ein XMLHttpRequest-Objekt zurück
    function getXMLHttpRequest() 
    {
      if (window.XMLHttpRequest) {
        //XMLHttpRequest für Firefox, Opera, Safari, ...
        return new XMLHttpRequest();
      } else 
      if (window.ActiveXObject) {
        try {   
          //XMLHTTP (neu) für Internet Explorer 
          return new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
          try {        
            //XMLHTTP (alt) für Internet Explorer
            return new ActiveXObject("Microsoft.XMLHTTP");  
          } catch (e) {
            return null;
          }
        }
      }
      return false;
    }</script>

    Hier das PHP Script:
    PHP-Code:

    <?php 

    $eingabe
    =$_POST["eingabe"]; 


    //Bitte die richtigen Zugangsdaten einfügen: 
    $conn = @mysql_connect("localhost""xxxx","xxxxxxx")  
          or die(
    "Verbindung zu Datenbank fehlgeschlagen"); 
       
    //Datenbank auswählen: 
    $rs = @mysql_select_db("sharkfan"$conn)  
        or die(
    "Auswahl der Datenbank fehlgeschlagen"); 




    $frage "SELECT * FROM fotos WHERE userid = '$eingabe' ORDER BY RAND() LIMIT 6";
    $request mysql_query($frage);
    while(
    $fotos mysql_fetch_object($request)) {

    echo
    "<a href=\"fotos/$fotos->foto\" rel=\"lightbox[$userid]\" ><img src=\"fotos/tn1-$fotos->foto\" border=0></a> ";
                    

        
    }

    ?>

    Hat jemand eine Ahnung?

  2. #2
    tobi2 ist offline Mitglied
    registriert
    28-04-2008
    Beiträge
    29

    AW: Frage zu AJAX und Kompatibiliät der Browser

    Kann Dir konkret nicht weiterhelfen, aber generell verwende ich immer eines der etablierten Frameworks, da sich dann weltweit einige (zig) Tausend Entwickler mit der Browserkompatiblität rumschlagen.

    Dann wäre die Frage, was nicht funktioniert?

    Wird der Ajax request nicht abgeschickt oder kann in den anderen Browsern die response nicht ausgewertet werden?

    Fall nicht vorhanden Firebug installieren und noch mal konkrete Angaben zum Fehler machen.

  3. #3
    cybaer ist offline Kaiser
    registriert
    12-09-2006
    Beiträge
    1.338

    AW: Frage zu AJAX und Kompatibiliät der Browser

    Zitat Zitat von tobi2 Beitrag anzeigen
    aber generell verwende ich immer eines der etablierten Frameworks, da sich dann weltweit einige (zig) Tausend Entwickler mit der Browserkompatiblität rumschlagen.
    Einerseits: Ajax ist so wenig komplex, daß man IMHO auch gut ohne Framework damit klarkommen sollte. Andererseits: Ich habe schon in Frameworks echt üble Scheiße gesehen (z.B. fehlerhafte Browserweichen bei jQuery und andere Unfug), die trotzdem keiner entfernt.
    Gruß, Cybaer

  4. #4
    tobi2 ist offline Mitglied
    registriert
    28-04-2008
    Beiträge
    29

    AW: Frage zu AJAX und Kompatibiliät der Browser

    Zitat Zitat von cybaer Beitrag anzeigen
    Einerseits: Ajax ist so wenig komplex, daß man IMHO auch gut ohne Framework damit klarkommen sollte.
    Richtig. Und wenn man es lernen will, sollte man es auch mal selbst gemacht haben. Andererseits wollen es viele nicht lernen und dann posten sie als nächstes, wie man Elemente toggled etc. Dann zumindest gleich ein Hinweis auf gängige Frameworks.

    Zitat Zitat von cybaer Beitrag anzeigen
    Andererseits: Ich habe schon in Frameworks echt üble Scheiße gesehen (z.B. fehlerhafte Browserweichen bei jQuery und andere Unfug), die trotzdem keiner entfernt.
    Du ja scheinbar auch nicht
    Habe jQuery noch nicht verwendet, kann aber über Prototype nicht klage und wenn's sein muss nehme ich da nur das raus, was ich brauche (von wegen Dateigröße).

  5. #5
    cybaer ist offline Kaiser
    registriert
    12-09-2006
    Beiträge
    1.338

    AW: Frage zu AJAX und Kompatibiliät der Browser

    Zitat Zitat von tobi2 Beitrag anzeigen
    Du ja scheinbar auch nicht
    Natürlich nicht. Wer bin ich, hinter anderer Leute Fehler herzuprogrammieren, wenn ich die Scripte nicht nutze (und auch nicht empfehle). Hab genug damit zu tun, hinter meinen eigenen Fehlern herzuprogrammieren ...
    Gruß, Cybaer

Ähnliche Themen

  1. Ajax Frage
    Von Jayjay im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 07-02-2008, 14:47
  2. AJAX Frage
    Von cipg im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 06-12-2007, 23:54
  3. ajax über tabelle im internet explorer
    Von laza86 im Forum JavaScript
    Antworten: 17
    Letzter Beitrag: 05-11-2007, 18:13
  4. Ja nach laden mittels AJAX ausführen?
    Von EnemyArea im Forum Script-Check
    Antworten: 8
    Letzter Beitrag: 16-10-2006, 13:49
  5. gutes AJAX Buch
    Von Kurt Cobain im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 12-08-2006, 12:44

Lesezeichen

Berechtigungen

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