Bonjour,
J'ai un souci concernant la création dynamique d'un div en passant par le dom après avoir lancer une requête ajax via prototype.
Le problème est le suivant.
J'ai un formulaire quand je rentre un artiste; celui ci s'affiche dans un div en dessous avec la possibilité de le modifier ou de le supprimer. Si je valide sans entrer d'information j'ai un message d'erreur qui s'affiche toujours dans le div en dessous.
Lors du premier affichage tout se passe bien, par contre si j'ajoute un autre artiste, il s'affiche correctement mais j'ai une ligne qui se rajoute en bas du div une sorte de hr et à chaque insertion suivante le phénomène se répète mais l'affichage reste correcte c'est juste que le div créé se déforme pour des raisons que j'ignore voilà la partie du code qui doit poser problème.
Au départ voilà ce à quoi j'avais penser
Je me suis dit ensuite que ce n'est pas la bonne solution car à chaque appel de l'ajax je crée le div et que cela devait être le problème donc voilà les modifications que j'ai apporté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 new Ajax.Request(url, { method: 'post', parameters : $('monForm').serialize(true), onSuccess: function(transport){ artists.justAdded = transport.responseText.evalJSON(); if(!Object.isString(artists.justAdded)){ var div_class = new Element('div', { class: 'block'}); var div_id = $('arts'); var div_id = new Element('div', { id: 'arts' }); div_class.insert(div_id); $('Content').insert(div_class); artists.writeArtistsTable(artists.justAdded.arts); $('monForm').reset(); } else if(Object.isString(artists.justAdded)){ var div_class = new Element('div', { class: 'block'}); var div_id = $('arts'); var div_id = new Element('div', { id: 'arts' }); div_class.insert(div_id); $('Content').insert(div_class); $('arts').innerHTML = artists.justAdded; } }
Mais le problème reste le même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 new Ajax.Request(url, { method: 'post', parameters : $('monForm').serialize(true), onSuccess: function(transport){ artists.justAdded = transport.responseText.evalJSON(); var div_class = new Element('div', { class: 'block'}); var div_id = $('arts'); var div_id = new Element('div', { id: 'arts' }); div_class.insert(div_id); $('Content').insert(div_class); if(!Object.isString(artists.justAdded)){ artists.writeArtistsTable(artists.justAdded.arts); $('monForm').reset(); } else if(Object.isString(artists.justAdded)){ $('arts').innerHTML = artists.justAdded; } }
Je suis à votre disposition pour plus d'informations.
Je vous remercie d'avance
Partager