Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2007, 16h33   #1
Invité régulier
 
Étudiant
Inscription : avril 2006
Messages : 23
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 23
Points : 8
Points : 8
Par défaut [Prototype] MàJ balise <div> - Framework prototype.js

Bonjour à tous !

Alors voilà j'utilise le framework prototype.js pour mettre à jour la partie contenu de ma page web. Lorsque l'on clique sur un élément du menu de navigation, j'appele la fonction getContentAjax().

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
function getContentAjax(contentID)
{
   var url = 'getContent.php';
   var pars = 'contentID=' + contentID;
 
 
   var myAjax = new Ajax.Updater(
            {success: 'content'},
            url,
            {method: 'post', parameters: pars, onFailure: reportError});
}
La mise à jour fonctionne parfaitement mais le pb est que l'insertion est faite par concaténation. Par exemple si je clique deux fois sur Accueil, il va me supperposer deux fois le contenu de ma page d'accueil entre la balise <div id="content"> et </div>.

Avant (sa ne fait que 3j que j'ai commencé avec AJAX) j'utilisais le framework Rico, qui lui gérait bien l'effacement avant l'insertion du contenu.

Je suis loin de maitriser le javascript donc il se peut que la solution soit vraiment très simple.

Pour résumer je cherche un moyen d'effacer le contenu d'une balise <div> en javascript (d'ailleur je me demande si je suis ds la bonne section ...).

Merci d'avance !
Matth
Mattius007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2007, 16h36   #2
Membre actif
 
Étudiant
Inscription : août 2005
Messages : 161
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 161
Points : 170
Points : 170
Code :
1
2
3
<div id="madiv"></div>
 
document.getElementById('madiv').innerHTML = '';
poof65 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2007, 17h06   #3
Invité régulier
 
Étudiant
Inscription : avril 2006
Messages : 23
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 23
Points : 8
Points : 8
Arf je crois que je me suis un peu emballé trop vite, cette fonction fonctionne en effet lorsque le texte ou autre est inclus dans la balise <div>

Le problème c'est que ma balise reste vide, vu que son contenu est importé via l'AJAX... Le navigateur à donc beau executer :
Code :
document.getElementById('content').innerHTML = '';
Il ne peut pas effacer le contenu, vu qu'il ne voit rien dedant :
Code :
<div id="content"></div>
Une autre solution ? Ou peut-être que je m'y prend mal ?
Mattius007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2007, 00h28   #4
Invité régulier
 
Étudiant
Inscription : avril 2006
Messages : 23
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 23
Points : 8
Points : 8
Par défaut Précision

En fait le problème est fort probablement un "bug" de prototype.js car les informations données sur le site officiel précisent que par défault le contenu de l'élément est effacé et remplacé.

Citation:
Prototype will automagically update the container with the response using the Element.update() method.

[...]

You might also choose not to overwrite the current container contents, but insert new HTML on top or bottom like you would do with Insertion.Top or Insertion.Bottom.
Je viens de me rendre compte que sous IE cela fontionne...

Dommage qu'il n'y ai pas plus d'informations, de forums et de tuto à propos de ce framework...

Matth

PS : Celà dit, je trouve qd même étrange qu'il(s) n'ai(ent) pas résolu ce problème pour Firefox car cette fonction me semble essentielle. A préciser aussi que Rico integre prototype et le "bug" n'a pas lieu sous Firefox. Le(s) auteur(s) de Rico ont probablement résolu le pb.
Mattius007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h56.


 
 
 
 
Partenaires

Hébergement Web