2010-08-16 8 views
0

ceci est un cas étrange, j'ai un script jquery qui fonctionne avec load() et un script PHP avec un chargeur gif jusqu'à ce que ce script est récupéré FADING IN, cette jquery est lancée sur cliquez surjquery charger pour télécharger le contenu d'abord

le problème est que le script jquery est un peu inutile pour son intention réelle parce que ce script php J'appel renvoie quelque chose comme

<img src="resizer.php=filename=/img/1.jpg&width=400" /> 

où 1.jpg (nom de fichier) est récupéré par la page PHP appelé en ajax à partir d'un db lié à l'id de l'image passée par load()

donc, lorsque le texte HTML disparaît dans l'image aura encore besoin d'être chargé à partir du resizer.php ainsi qu'il apparaîtra normalement

Comment puis-je organiser cela en fondu une fois que tout est téléchargé? Je ne peux pas appeler le resizer.php directement, car il produit un en-tête JPEG

Répondre

1
var img = new Image(); 
img.onload = function() { /* CALLBACK GOES HERE */ } 
img.src = "resizer.php=filename=/img/1.jpg&width=400"; 

Si vous ne disposez pas de contrôle de la page en sortie la balise <img>, vous pouvez extraire la source avec une expression régulière ou un analyseur DOM.

+0

Je n'ai aucun contrôle de ce que le img.src serait, cela dépend de l'img id –

+0

Vous devriez avoir un moyen d'extraire cette information indépendamment de –

0

Je ne suis pas sûr si je comprends bien, mais si vous faites quelque chose comme ceci:

$document.ready(function() { 

$('#loadID').load("resizer.php=filename=/img/1.jpg&width=400", function(){ 

$('#loadID').fadeIn('slow');  

}); 

}); 

Le fadeIn ne sera pas tiré jusqu'à ce que « resizer.php = filename =/img/1. jpg & width = 400 "est complètement chargé.

Espérons que ça aide.

edit: fixé un sélecteur (le fadeIn)

loadID serait l'ID que vous chargez pour.

+0

le problème est que je ne connais pas le nom de fichier jusqu'à ce qu'il soit traité à PHP –

+0

Oh d'accord, vous devez probablement utiliser ajax .get() ou .post() Ex: $ .get ("test.php", fonction (données) { alert ("Données chargées:" + données); }); Alertera le résultat de test.php en utilisant la méthode get de php. – MoDFoX

+0

vous dites que je devrais alors obtenir l'img url de la réponse et appliquer votre fonction? –

0

Ajout d'une autre réponse. Dans votre cas, vous voulez récupérer le résultat du script php, vous devez donc utiliser la fonction ajax de jQuery en utilisant la méthode get ou post. Exemple:

$.get("file.php", function(data){ alert("Data Loaded: " + data); }); 

Cela affichera un message d'alerte qui dit: "Les données Loaded: quel que soit le php retourne"

Donc, dans votre cas, vous faire:

$.get("resizer.php", function(data){ $('#loadID').html(data) }); 

Encore une fois, Je ne comprends pas 100% désolé si ce n'est pas ce que vous cherchez.

Questions connexes