Dani Düsentrieb: Bild per Ajax laden

Hallo Leute

ich habe im PHP eine Anwendung zusammengebuat die Daten über eine wsdl Schnittstelle abruft. Unter anderen sind bei diesen Daten auch Bilddaten dabei. Diese rufe ich separat mit einer PHP Datei. Um die Bilder nun per Ajax zu laden nutze ich Mootools. Folgenden Code verwende ich dazu:

  
	$replacedivs = $$('div.art_item_artimg');  
	  
	$replacedivs.each(function(item){  
		var req = new Request.HTML({url:'image.php',methode:'get',  
			onSuccess: function(html) {  
				item.set('text', '');  
				item.adopt(html);  
			},  
			  
			onFailure: function() {  
				item.set('text', 'The request failed.');  
			}  
		});  
		  
		req.send('docid='+item.title);  
	});  

Wenn ich diesen Code verwende dann wird mir auf der Seite der Quelltext des Bildes angezeigt und nicht das Bild. Erst wenn ich den Request über eine zweite PHP Datei laufen lasse in der folgender Code steht dann klappt das!

  
<img src="image.php?docid=<?php echo $docid; ?>" border="0" alt="Artikelbild" />  

Ich bin der Meinung das ich hier im Request noch nen Header angeben muss das es sich im Bilddaten handelt. Liege ich da richtig? Wenn ja wie muss der Request gestaltet werden und wenn nein was muss ich dann tun?

Gruß Daniel

  1. Hi,

    Um die Bilder nun per Ajax zu laden

    ... liest Du diesen Thread und legst den Blödsinn ad acta.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. hi,

      Um die Bilder nun per Ajax zu laden

      ... liest Du diesen Thread und legst den Blödsinn ad acta.

      Ganz meiner Meinung. Nur mal so nebenbei: Wenn es darum geht, Graphen zu zeichnen, muss nicht jedesmal ein neues Bild vom Server geholt werden. Da reicht ein GIF, was entsprechend scaliert und repeated wird. Es reicht, dazu die Daten vom Sever anzufordern.

      Hotti

      1. Ganz meiner Meinung. Nur mal so nebenbei: Wenn es darum geht, Graphen zu zeichnen, muss nicht jedesmal ein neues Bild vom Server geholt werden. Da reicht ein GIF, was entsprechend scaliert und repeated wird. Es reicht, dazu die Daten vom Sever anzufordern.

        Wer hat da was von Graphen erzählt? Es geht einfach nur darum ein und die gleiche Datei per Ajax zuladen und über die ID den Inhalt zu steuern.

        1. hi,

          Wer hat da was von Graphen erzählt?

          Klick auf den Link, den Cheatah gepostet hat.

          Hotti

  2. hi,

    Ich bin der Meinung das ich hier im Request noch nen Header angeben muss das es sich im Bilddaten handelt. Liege ich da richtig?

    Nö. Im Header der Response muss der Content-Type angegeben sein.

    Hotti

    1. hi,

      Ich bin der Meinung das ich hier im Request noch nen Header angeben muss das es sich im Bilddaten handelt. Liege ich da richtig?

      Nö. Im Header der Response muss der Content-Type angegeben sein.
      Jo der steht da auch drin und zwar so:

        
      header('Content-type: '.$documentData[$d]["docFileType"]);  
      
      

      und in $documentData[$d]["docFileType"] steht dann natürlich auch je nach Bild der richtige Mime-Type drin.

      Hotti

      1. hi,

        Jo der steht da auch drin und zwar so:

        header('Content-type: '.$documentData[$d]["docFileType"]);

        
        > und in $documentData[$d]["docFileType"] steht dann natürlich auch je nach Bild der richtige Mime-Type drin.  
          
        Najoot. Und wie sieht die Response aus, kommt da das Bild? (Test mit dem Browser).  
          
        Hotti
        
      2. Hallo,

        Im Header der Response muss der Content-Type angegeben sein.
        Jo der steht da auch drin und zwar so:

        header('Content-type: '.$documentData[$d]["docFileType"]);

        und in $documentData[$d]["docFileType"] steht dann natürlich auch je nach Bild der richtige Mime-Type drin.

        und kommt dieser Content-Type-Header auch korrekt beim Client an (mit Firebug oder LiveHTTP nachprüfen)? Oder bekommst du eine Warnung "Cannot modify header information, headers already sent ..."?

        Ciao,
         Martin

        --
        Programmierer (m), seltener auch P~in (w):
        Irdische, i.a. humanoide Lebensform, die in einem komplizierten biochemischen Prozess Kaffee, Cola und Pizza in maschinenlesbaren Programmcode umwandelt.
        P~ bilden gelegentlich mit ihresgleichen kleine Gruppen, sogenannte Communities, sind aber ansonsten meist scheue Einzelgänger.
        P~ sind vorwiegend nachtaktiv und ohne technische Hilfsmittel nur eingeschränkt lebensfähig.
  3. Hallo Daniel,

    nur als Gedankenanstoss: Google listet solche Bilder nicht in der Bildersuche und wenn dann nicht in den entsprechenden Positionen als wenn sie nicht über Ajax nachgeladen worden wären.

    Bitte überlege dir genau ob sich solche Inhalte lohnen, wenn man sie nicht in die Suchmaschinen bekommt.

    Gruß

    Casio