2009-09-20 4 views
0

... dans le contexte d'un élément que je dois vérifier?Quelle est la différence entre load (fn) et ready (fn)

Je ne ai jamais fait face au problème de Transfert à l'aide iframe sans jQuery, mais maintenant je pense sur le téléchargement de rappel ajax qui contient une forme, un iframe:

<form enctype="multipart/form-data" action="get.imageupload.php" id="upload_form" method="post"> 
    <input name="userfile" type="file" id="file" /> 
    <input type="submit" name="action" value="start" /> 
    <input type="hidden" name="id" value="<?=$id;?>" /> 
    <iframe id="upload_target" name="upload_target" src="" style="width:0;height:0;border:0"></iframe> 
</form> 

et les js suivants:

$("#upload_form").submit(function() { 
    $(this).attr("target","upload_target"); 
    $("iframe", this).load(function() { 
     var ret = $("iframe", "#upload_form").contents().find("body").html(); 
     var data = eval("("+ret+")"); 
     if (data.success) alert("success"); // todo 
     if (data.failure) alert("fail"); // todo 
    }); 
    return false; 
}); 

Je dois gérer une requête de get.imageupload.php qui retourne des données JSON, donc js ressemble à ça. Le problème est: load(fn) ne fonctionne pas; ready(fn) à la place, mais iframe est vide, car un événement se déclenche avant que le téléchargement commence ... Je suis débutant dans jQuery et peut-être il y a un autre moyen?

Des idées?

Thanx

+0

P.S. Pas de navigateur IE. – Vov4ik

Répondre

1

Je ne vois pas pourquoi vous utilisez un iframe au lieu d'un div ou quelque chose de similaire à charger dans tout le contenu.

L'idée est de charger les données dans un élément asynchrone.

Je vous suggère d'insérer un bouton de soumission afin que vous ayez un événement pour commencer à faire ce que vous voulez faire. C'est un moyen léger et facile de faire un "téléchargement AJAX".

Espérons que cela a été à toute aide.

+0

'load (fn)' - une fonction à lier à l'événement load sur chacun des éléments correspondants et s'exécute lorsque la page est entièrement chargée. J'utilise cette fonction parce que je dois avoir les données json demandées. Ce n'est pas une fonction ajax – Vov4ik