Prototype.js: new insertion par ajax+ element.update = bug
Bonjour, j'ai essayé de créer une 'fenêtre' avec HTML et Prototype, puis y insérer du contenu HTML immédiatement : Pas de problème pour créer dynamiquement un Div de style 'position:absolute' avec 'New Insertion.Element(...), mais si j'inclus du contenu dans ce Div immédiatement dans le même script avec Update(Element...) ça ne marche pas !
Mais si j'intercalle un affichage de fenêtre alert(....) pas de pb, l'alert s'affiche, puis après la fenêtre est mise à jour !!! Bug de prototype qui peut être contourné ou pas ?
Si vous comprenez pas, voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
// CAS 1 :
// => CA MARCHE BIEN : On obtient '2e insertion dans mon div'
function aff_dialog_stat(nom_fen) // Fonction créa et d'affichage des fen dynamique, pas de rechargement si elle existe déjà
{ if($(nom_fen)==null) {new Insertion.Bottom('td_contenu',"<div id='monparagraf'>1ere insertion dans le div... !</div>");}
else { alert("Pas besoin de relancer insertion") }
}
function aff_dialog_dyn(nom_fen) // Fonction créa et d'affichage des fen dynamique, rechargement si elle existe déjà
{ if($(nom_fen)==null) {aff_dialog_stat(nom_fen);}
else
{ Element.remove(nom_fen);
aff_dialog_stat(nom_fen);}
}
function lancer()
{
aff_dialog_stat('monparagraf'); // Création de la fen qui est rafraichie à chaque ouverture, affichant les erreurs trouvées
Element.update('monparagraf',"<div id='enreg_valid'>2e insertion dans mon div</div>");
}
// CAS 2 :
// => CA MARCHE PAS : On obtient le contenu de serv_insertion_1.php : 'salut le monde merveilleux de JS !'
function aff_dialog_stat(nom_fen) // Fonction créa et d'affichage des fen dynamique, pas de rechargement si elle existe déjà
{ if($(nom_fen)==null)
{
new Ajax.Request('serv_insertion_1.php',{ // Contient <div
method: 'get',
parameters: '', onSuccess: function(requester) {
new Insertion.Bottom('td_contenu',requester.responseText);
}
//,onComplete: function(requester) { Element.update('monparagraf',"<div id='enreg_valid'>2e insertion dans mon div</div>");}
});
}
}
function lancer()
{
aff_dialog_stat('monparagraf'); // Création de la fen qui est rafraichie à chaque ouverture, affichant les erreurs trouvées
Element.update('monparagraf',"<div id='enreg_valid'>2e insertion dans mon div</div>");
} |
Et aussi, évidemment le "serveur" php qui va avec tout ça :
Code:
1 2 3 4
| <?php header('Content-type: text/html; charset=ISO-8859-1');
echo "<div id='monparagraf'>1ere insertion dans le div... </div>";
?> |