Formulaire Ajax+Prototype

Eléphanteau du PHP | 38 Messages

22 déc. 2009, 11:09

Bonjour,

Je suis novice en ajax et je suis en train de mettre en place un admin pour alimenter une base de données.
J'ai un formulaire d'ajout et sous celui ci s'affiche mon insertion une fois celle ci correctement effectuée.

Cette insertion est modifiable ou supprimable grâce à des liens créés dynamiquement suite à l'insertion.

Lorsque je lance mon script de modification mon tableau de modification apparait furtivement mais je le temps de voir que la valeur a bien été récupérée par contre les boutons de mon formulaire n'apparaissent j'ai retourné le code dans tous les sens et je ne trouve pas d'erreur.

Je joins le code pour que vous puissiez me comprendre, n'hésitez pas à revenir vers si vous avez des questions.

Je vous remercie d'avance.

voici mon formulaire

Code : Tout sélectionner

<?include "_debut.php";?> <script type="text/javascript" src="lib/prototype.js"></script> <script type="text/javascript" src="scripts/art_nat_art_modif.js"></script> <div id="Content"> <h1>Artistes</h1> <div class="block"> <form method="post" action="newArtist.php" name="monForm" id="monForm" enctype="multipart/form-data"> <table> <tr> <th>Ajouter Artiste </th> <td><input type="textarea" name="art_name" /></td> </tr> <tr> <th></th> <td><input type="submit" value="Valider" id="go" /></td> </tr> </table> </form> </div> <br /> </div> <?include "_fin.php";?>
Le php créant l'insertion

Code : Tout sélectionner

<?php include_once("connexion.php"); ?> <?php mysql_select_db($database, $base); if(!empty($_POST['art_name'])){ $query_artist = sprintf("INSERT INTO artists(art_name) VALUES('%s');", $_POST['art_name']); $artist = mysql_query($query_artist, $base); if($artist == true){ $id = mysql_insert_id(); $query_artist = sprintf("SELECT * FROM artists WHERE art_id = $id"); $artist = mysql_query($query_artist, $base) or die(mysql_error()); $row_artist = mysql_fetch_assoc($artist); $result = array(); do { $result[] = $row_artist; } while ($row_artist = mysql_fetch_object($artist)); echo '{"arts":'.json_encode($result).'}'; } } else{ echo json_encode("Veuillez Entrer Un Artiste"); } ?>
Mon Js

Code : Tout sélectionner

var artists = { // tous les artistes lastAddedArtist: null, // le div conteneur container: null, // fonction d'init init: function() { var sbmButton = $("go"); var frm = $("monForm"); if(sbmButton && frm) { sbmButton.observe("click", artists.postArtist); } }, // pst un artiste en ajax au script php. l'url est l'action du formulaire postArtist: function(e) { // on stop l'événement e.stop(); // nouvelle requete ajax new Ajax.Request($("monForm").action, { method: "post", parameters : $("monForm").serialize(true), // on externalise le call back pour plus de lisibilité onSuccess:artists.artist_callBack }); }, // call back retour ajax artist_callBack: function(response) { // on evalue le JSON var lastArtist = response.responseText.evalJSON(); // si le resultat est de type string, c'est un message d'erreur if(Object.isString(lastArtist)) { //on affiche une erreur artists.writeError(lastArtist); } else { // reinit du formulaire $("monForm").reset(); // on, ajoute l'artiste à la liste de ceux déjà créés // note : le json retourné est de la forme : {arts:[{art_id: "id", art_name: "name"}]} // il pourait etre plus simple : {art_id: "id", art_name: "name"} // la ligne suivante serait alors simplement : artists.lastAddedArtist = lastArtist.arts[0]; // on dessine les artistes artists.drawArtists(); } }, // ecriture d'un message d'erreur writeError: function(message) { // on obtient le conteneur et on l'update avec le message artists.getContainer().update(message); }, // dessine les artistes du tableau artists.allArtists drawArtists : function() { // on construit la table var table = new Element('table'); // header var tr0 = new Element('tr'); var th0 = new Element('th').update("ID"); var th1 = new Element('th').update("Artiste"); var th2 = new Element('th', {colspan: '2'}).update("Action"); tr0.insert(th0).insert(th1).insert(th2); table.insert(tr0); // ... toujours donner les noms les plus significatifs possibles, ca aide toujours 6 mois après var artist = artists.lastAddedArtist; var tr1 = new Element('tr'); var td1 = new Element('td').update(artist.art_id); var td2 = new Element('td').update(artist.art_name); var td3 = new Element('td'); var imgModif = new Element('img', {src: 'modifier.png', alt: 'modifier', title: 'modifier'}); var imgModifLink = new Element('a',{"class":'imgModif',id: 'modif', href:''}); imgModifLink.observe("click", modifArtist.drawArtModifier); td3.insert(imgModifLink); imgModifLink.insert(imgModif); var td4 = new Element('td'); var imgSuppr = new Element('img', {src: 'supprimer.png', alt: 'supprimer', title: 'supprimer'}); var imgSupprLink = new Element('a',{"class":'imgSuppr', id: 'suppr', href:''}); // imgSupprLink.observe("click", supprArtist.drawArtSupprimer); td4.insert(imgSupprLink); imgSupprLink.insert(imgSuppr); tr1.insert(td1).insert(td2).insert(td3).insert(td4); table.insert(tr1); // on obtient le conteneur var container = artists.getContainer(); // on enleve tout ce qu'il contient container.childElements().invoke("remove"); // on update à vide et on insere la table $('arts').innerHTML = ""; container.update("").insert(table); }, // renvoie le conteneur getContainer : function() { // si'il est null if(! artists.container) { // on le crée en deux fois var block = new Element("div", {"class": "block"}); $("Content").insert(block); artists.container = new Element("div", {"id": "arts"}); block.insert(artists.container); } // on le renvoie return artists.container; } }; var modifArtist = { // le div conteneur container: null, url: null, // fonction d'init init: function(){ modifArtist.url = "modifArtist.php"; }, // on dessine l'artiste à modifier drawArtModifier : function(){ // on construit le formulaire var form = new Element('form', {"action": modifArtist.url, "name": "monForm", "id": "monForm", "enctype": "multipart/form-data"}); // on récupère la valeur de l'artiste modifArtist.aEffectuer = artists.lastAddedArtist; // on construit la table var table = new Element('table'); var tr0 = new Element('tr'); var th0 = new Element('th').update("Modifier Artiste"); var td0 = new Element('td'); var txtarea = new Element('textarea', {"name": "art_name"}).update(modifArtist.aEffectuer.art_name); td0.insert(txtarea); tr0.insert(th0).insert(td0); table.insert(tr0); var tr1 = new Element('tr'); var th1 = new Element('th'); var td1 = new Element('td'); var sbt = new Element('input', {type: "submit", "value": "Valider", "id": "go"}); td1.insert(sbt); form.insert(sbt); var btn = new Element('input', {type: "button", "value": "Annuler"}); td1.insert(btn); form.insert(btn); tr1.insert(th1).insert(td1); table.insert(tr1); form.insert(table); // on obtient le conteneur var container = modifArtist.getContainer(); // on enleve tout ce qu'il contient container.childElements().invoke("remove"); // on update à vide et on insere la table $('arts').innerHTML = ""; container.update("").insert(table); }, // renvoie le conteneur getContainer : function() { // si'il est null if(! modifArtist.container) { // on le crée en deux fois var block = new Element("div", {"class": "blockmodif"}); $("Content").insert(block); modifArtist.container = new Element("div", {"id": "arts"}); block.insert(modifArtist.container); } // on le renvoie return modifArtist.container; } }; document.observe('dom:loaded', function() { artists.init(); modifArtist.init(); });
Nats

Mammouth du PHP | 661 Messages

23 déc. 2009, 14:53

Salut, j'ai jeté un oeil sur ton code ... et mis à part le fait que ce soit un peu brouillon, et que prototype pourrait t'apporter une aide bien plus précieuse en utilisant certaines fonctions, aurais tu une page en ligne pour qu'on se rende compte par nous meme de ce qui se passe, et de la façon dont tout fonctionne ... stp !?

J'ai commencé la rédaction d'une class pour gérer plus simplement ton script ... mais je suis un peu bloqué par certains fonctionnement !...

@++

Eléphanteau du PHP | 38 Messages

23 déc. 2009, 15:16

Salut Nours312,
Je t'envoie dans un message privé l'adresse ou tu peux tester mon script.
Etant novice tous les conseils sont les bienvenus.

Merci beaucoup
Nats

Mammouth du PHP | 661 Messages

23 déc. 2009, 16:44

1. rapidement, tu devrais mettre un e.stop() à la function modifArtist.drawArtModifier(e) ... ou '#' à l'atribut Href de ton lien :

Code : Tout sélectionner

var imgModifLink = new Element('a',{ "class":'imgModif', id: 'modif', href:'' });
actuellement, le formulaire disparait par ce que la page est rechargée !... :D

2. Comment récupères tu les précédentes créations ? celles qui sont dans la bdd ... ? tu ne les affichent pas du tout sur cette page ?

3. ensuite, as tu testé Class.create() de prototype, c'est une petite merveille ;)

Eléphanteau du PHP | 38 Messages

23 déc. 2009, 19:28

En effet en mettant # à l'attribut href mon formulaire reste bien affiché :D
Par contre il me reste des problèmes au niveau de formulaire imbriqué dans mon tableau les boutons ne s'affichent pas.
J'ai du mal avec le dom mais je pense que mon code est correct

Code : Tout sélectionner

var table = new Element('table'); var tr0 = new Element('tr'); var th0 = new Element('th').update("Modifier Artiste"); var td0 = new Element('td'); var txtarea = new Element('textarea', {"name": "art_name"}).update(modifArtist.aEffectuer.art_name); td0.insert(txtarea); tr0.insert(th0).insert(td0); table.insert(tr0); var tr1 = new Element('tr'); var th1 = new Element('th'); var td1 = new Element('td'); var sbt = new Element('input', {type: "submit", "value": "Valider", "id": "go"}); td1.insert(sbt); form.insert(sbt); var btn = new Element('input', {type: "button", "value": "Annuler"}); td1.insert(btn); form.insert(btn); tr1.insert(th1).insert(td1); table.insert(tr1); form.insert(table);
Dans tous les cas je vais y travailler pour tenter de trouver une solution.

Concernant les précédentes créations, je ne travaille qu'avec la dernière insertion, inséré via ajax avec la fonction artist.
Je n'affiche que la dernière insertion que je pourrais modifier ou supprimer comme tu as pu le voir.

Par contre je ne connais pas du tout Class.create() mon niveau est vraiment très mauvais en ajax prototype.
Nats

Eléphanteau du PHP | 38 Messages

23 déc. 2009, 21:36

J'ai résolu le problème des boutons ils sont maintenant bien présents.
Par contre quand je clique sur modifier il ne se passe rien. L'id du bouton modifier est le même que celui du bouton valider initial afin que la fonction artists puisse se lancer pour afficher à nouveau l'artiste modifier.

Mon raisonnement est il correct?

Voici mon php pour la modification

Code : Tout sélectionner

<?php include_once("connexion.php"); ?> <?php mysql_select_db($database, $base); //si modification $id = mysql_insert_id(); $query_modifArtist = sprintf("UPDATE artists SET art_name='$art_name' WHERE art_id = '$id'"); $artist = mysql_query($query_modifArtist, $base) or die(mysql_error()); $row_artist = mysql_fetch_assoc($artist); $result = array(); do { $result[] = $row_artist; } while ($row_artist = mysql_fetch_object($artist)); echo '{"arts":'.json_encode($result).'}'; ?>
J'aimerais également faire en sorte qu'un click sur le bouton annuler recharge la page.
Mais je ne trouve pas la syntaxe.
Le début doit être

Code : Tout sélectionner

btn.observe("click",...);
Par contre je ne trouve pas pour la suite.
Nats

Eléphanteau du PHP | 38 Messages

05 janv. 2010, 21:08

Avant toutes choses bonne et heureuse année à tous!!!
Je peux maintenant à nouveau vous embêter ;)
J'avance petit à petit avec mon script.
J'arrive maintenant à afficher mon formulaire de modification avec un défaut d'affichage une ligne s'affiche au dessus du block.
Vous pouvez tester le script ici: http://morethanmusicradio.com/admin_radio/art_nat2.php

J'arrive à récupérer la valeur de l'artiste que je viens d'insérer si je crée dynamiquement un textarea.

Code : Tout sélectionner

var txtarea = new Element('textarea', {[color=#FF0000]"name": "art_name"[/color], "rows": "0"}).update(modifArtist.aEffectuer.art_name);
Par contre si je crée un input type text la valeur ne s'inscrit pas dans mon champ texte

Code : Tout sélectionner

var txtarea = new Element('input', {type: "text", "name": "art_name", "rows": "0"}).update(modifArtist.aEffectuer.art_name);
L'insertion se passe bien mon tableau de contrôle s'affiche bien également mais cependant aléatoirement le nom de l'artiste ne s'affiche pas dans ma base et rend execution du script de modification impossible.

Voici le script de modification

Code : Tout sélectionner

<?php include_once("connexion.php"); ?> <?php mysql_select_db($database, $base); //si modification $id = mysql_insert_id(); $query_modifArtist = sprintf("UPDATE artists SET art_name='$[color=#FF0000]art_name[/color]' WHERE art_id = '$id'"); $artist = mysql_query($query_modifArtist, $base) or die(mysql_error()); $row_artist = mysql_fetch_assoc($artist); $result = array(); do { $result[] = $row_artist; } while ($row_artist = mysql_fetch_object($artist)); echo '{"arts":'.json_encode($result).'}'; ?>
art_name est bien le nom du champ texte ou textarea créé que je mets en rouge.

Etant novice tous vos conseils sont les bienvenus merci d'avance
Nats

Eléphanteau du PHP | 38 Messages

09 janv. 2010, 18:06

J'avance petit à petit.
AU niveau de l'input type text la syntaxe n'etait pas correct
Il ne faut pas faire ça

Code : Tout sélectionner

var txtarea = new Element('input', {type: "text", "name": "art_name", "rows": "0"}).update(modifArtist.aEffectuer.art_name);
Mais

Code : Tout sélectionner

var txt = new Element('input', {type: "text", "name": "art_name"}); txt.value = modifArtist.aEffectuer.art_name;
Par contre je n'arrive toujours pas à poster au script php l'artiste que je récupère

Voilà mon js avec la partie de modification qui pose problème en rouge

Code : Tout sélectionner

var artists = { // tous les artistes lastAddedArtist: null, // le div conteneur container: null, // fonction d'init init: function() { var sbmButton = $("go"); var frm = $("monForm"); if(sbmButton && frm) { sbmButton.observe("click", artists.postArtist); } }, // pst un artiste en ajax au script php. l'url est l'action du formulaire postArtist: function(e) { // on stop l'événement e.stop(); // nouvelle requete ajax new Ajax.Request($("monForm").action, { method: "post", parameters : $("monForm").serialize(true), // on externalise le call back pour plus de lisibilité onSuccess:artists.artist_callBack }); }, // call back retour ajax artist_callBack: function(response) { // on evalue le JSON var lastArtist = response.responseText.evalJSON(); // si le resultat est de type string, c'est un message d'erreur if(Object.isString(lastArtist)) { //on affiche une erreur artists.writeError(lastArtist); } else { // reinit du formulaire $("monForm").reset(); // on ajoute l'artiste à la liste de ceux déjà créés // note : le json retourné est de la forme : {arts:[{art_id: "id", art_name: "name"}]} // il pourait etre plus simple : {art_id: "id", art_name: "name"} // la ligne suivante serait alors simplement : artists.lastAddedArtist = lastArtist.arts[0]; // on dessine les artistes artists.drawArtists(); } }, // ecriture d'un message d'erreur writeError: function(message) { // on obtient le conteneur et on l'update avec le message artists.getContainer().update(message); }, // dessine les artistes du tableau artists.allArtists drawArtists : function() { // on construit la table var table = new Element('table'); // header var tr0 = new Element('tr'); var th0 = new Element('th').update("ID"); var th1 = new Element('th').update("Artiste"); var th2 = new Element('th', {colspan: '2'}).update("Action"); tr0.insert(th0).insert(th1).insert(th2); table.insert(tr0); // ... toujours donner les noms les plus significatifs possibles, ca aide toujours 6 mois après var artist = artists.lastAddedArtist; var tr1 = new Element('tr'); var td1 = new Element('td').update(artist.art_id); var td2 = new Element('td').update(artist.art_name); var td3 = new Element('td'); var imgModif = new Element('img', {src: 'modifier.png', alt: 'modifier', title: 'modifier'}); var imgModifLink = new Element('a',{"class":'imgModif',id: 'modif', href:''}); imgModifLink.observe("click", modifArtist.drawArtModifier); td3.insert(imgModifLink); imgModifLink.insert(imgModif); var td4 = new Element('td'); var imgSuppr = new Element('img', {src: 'supprimer.png', alt: 'supprimer', title: 'supprimer'}); var imgSupprLink = new Element('a',{"class":'imgSuppr', id: 'suppr', href:''}); imgSupprLink.observe("click", supprArtist.drawArtSupprimer); td4.insert(imgSupprLink); imgSupprLink.insert(imgSuppr); tr1.insert(td1).insert(td2).insert(td3).insert(td4); table.insert(tr1); // on obtient le conteneur var container = artists.getContainer(); // on enleve tout ce qu'il contient container.childElements().invoke("remove"); // on update à vide et on insere la table $('arts').innerHTML = ""; container.update("").insert(table); }, // renvoie le conteneur getContainer : function() { // si'il est null if(! artists.container) { // on le crée en deux fois var block = new Element("div", {"class": "block"}); $("Content").insert(block); artists.container = new Element("div", {"id": "arts"}); block.insert(artists.container); } // on le renvoie return artists.container; } }; [color=#FF0000]var modifArtist = { // artiste à modifier art_modif: null, // le div conteneur container: null, // on dessine l'artiste à modifier drawArtModifier : function(e){ // on stop l'évènement e.stop(); // on construit le formulaire var form = new Element('form', {"action": "modifArtist.php", "name": "frm_modification", "id": "frm_modification", "enctype": "multipart/form-data"}); // on récupère la valeur de l'artiste modifArtist.aEffectuer = artists.lastAddedArtist; // on construit la table var table = new Element('table'); var tr0 = new Element('tr'); var th0 = new Element('th').update("Modifier Artiste"); var td0 = new Element('td'); var txt = new Element('input', {type: "text", "name": "art_name"}); txt.value = modifArtist.aEffectuer.art_name; td0.insert(txt); tr0.insert(th0).insert(td0); table.insert(tr0); var tr1 = new Element('tr'); var th1 = new Element('th'); var td1 = new Element('td'); var sbt = new Element('input', {type: "submit", "value": "Modifier", "id": "do"}); sbt.observe("click", modifArtist.postArtistModif); td1.insert(sbt); var btn = new Element('input', {type: "button", "value": "Annuler"}); btn.observe("click", function(){ document.location.href="art_nat2.php"; }); td1.insert(btn); tr1.insert(th1).insert(td1); table.insert(tr1); form.insert(table); // on obtient le conteneur var container = modifArtist.getContainer(); // on enleve tout ce qu'il contient container.childElements().invoke("remove"); // on update à vide et on insere la table $('arts').innerHTML = ""; container.update("").insert(table); }, // renvoie le conteneur getContainer : function() { // si'il est null if(! modifArtist.container) { // on le crée en deux fois var block = new Element("div", {"class": "blockmodif"}); $("Content").insert(block); modifArtist.container = new Element("div", {"id": "arts"}); block.insert(modifArtist.container); } // on le renvoie return modifArtist.container; } // fonction d'init init: function(){ var sbmModifButton = $("do"); var frmModif = $("frm_modification"); if(sbmModifButton && frmModif) { sbmModifButton.observe("click", modifArtist.postArtistModif); } }, // poste un artiste en ajax au script php. L'url est l'action du formulaire postArtistModif: function(e) { // on stoppe l'évènement e.stop(); // nouvelle requête ajax new Ajax.Request($("frm_modification").action, { method: "post", parameters: $("frm_modification").serialize(true), // on externalise le call back pour plus de lisibilité onSuccess: modifArtist.artModif_callBack }); }, // call back retour ajax artModif_callBack: function(response) { // on evalue le JSON var artModif = response.responseText.evalJSON(); // si le résultat est de type de string, c'est un message d'erreur if(Object.isString(artModif)) { // on affiche une erreur modifArtist.writeError(artModif); } else { // reinit du formulaire $("frm_modification").reset(); //on récupère l'artiste à modifier modifArtist.art_modif = artists.lastArtist.arts[0]; // on dessine l'artiste à modifier modifArtist.drawArtistModif(); } }, // ecriture d'un message d'erreur writeError: function(message) { // on obtient le conteneur et on l'update avec le message modifArtist.getContainer().update(message); }, // On dessine le tableau de l'artiste à modifier drawArtistModif: function() { // on construit la table var table = new Element('table'); // header var tr0 = new Element('tr'); var th0 = new Element('th').update("ID"); var th1 = new Element('th').update("Artiste"); var th2 = new Element('th', {colspan:'2'}).update("Action"); tr0.insert(th0).insert(th1).insert(th2); table.insert(tr0); var artModification = modifArtist.art_modif; var tr1 = new Element('tr'); var td1 = new Element('td').update(artModification.art_id); var td2 = new Element('td').update(artModification.art_name); var td3 = new Element('td'); var imgModif = new Element('img', {src: 'modifier.png', alt: 'modifier', title: 'modifier'}); var imgModifLink = new Element('a',{"class":'imgModif',id: 'modif', href:''}); imgModifLink.observe("click", modifArtist.drawArtModifier); td3.insert(imgModifLink); imgModifLink.insert(imgModif); var td4 = new Element('td'); var imgSuppr = new Element('img', {src: 'supprimer.png', alt: 'supprimer', title: 'supprimer'}); var imgSupprLink = new Element('a',{"class":'imgSuppr', id: 'suppr', href:''}); imgSupprLink.observe("click", supprArtist.drawArtSupprimer); td4.insert(imgSupprLink); imgSupprLink.insert(imgSuppr); tr1.insert(td1).insert(td2).insert(td3).insert(td4); table.insert(tr1); // on obtient le conteneur var container = modifArtist.getContainer(); // on enleve tout ce qu'il contient container.childElements().invoke("remove"); // on update à vide et on insère la table $('arts').innerHTML = ""; container.update("").insert(table); }, // renvoie le conteneur getContainer: function() { // s'il est null if(! modifArtist.container) { // on le créé en deux fois var block = new Element("div", {"class": "blockmodif"}); $("Content").insert(block); modifArtist.container = new Element("div", {"id": "arts"}); block.insert(modifArtist.container); } // on le renvoie return modifArtist.container; } };[/color] var supprArtist = { // le div conteneur container: null, url: null, // fonction d'init init: function(){ supprArtist.url = "supprArtist.php"; }, // on dessine l'artiste à supprimer drawArtSupprimer : function(e){ // on stop l'évènement e.stop(); // on récupère la valeur de l'artiste à modifier supprArtist.aEffectuer = artists.lastAddedArtist; // on construit le span de modification message = "Vous êtes sur le point de supprimer: "; var spn = new Element('span',{"style":"font-weight: bold"}).update(message + supprArtist.aEffectuer.art_name); // on construit le formulaire de suppression var frm_suppr = new Element('form', {"action": supprArtist.url, "name": "monForm", "id": "monForm", "enctype": "multipart/form-data"}); var sbt_suppr = new Element('input', {type: "submit", "value": "Supprimer", "id": "go"}); sbt_suppr.observe("click", function(){ document.location.href="supprArtist.php"; }); frm_suppr.insert(sbt_suppr); var btn_suppr = new Element('input', {type: "button", "value": "Annuler"}); btn_suppr.observe("click", function(){ document.location.href="art_nat2.php"; }); frm_suppr.insert(btn_suppr); // on obtient le conteneur var container = supprArtist.getContainer(); // on enleve tout ce qu'il contient container.childElements().invoke("remove"); // on update à vide et on insere la table $('arts').innerHTML = ""; container.update("").insert(spn).insert(frm_suppr); }, // renvoie le conteneur getContainer : function() { // si'il est null if(! modifArtist.container) { // on le crée en deux fois var block_suppr = new Element("div", {"class": "blocksuppr"}); $("Content").insert(block_suppr); supprArtist.container = new Element("div", {"id": "arts"}); block_suppr.insert(supprArtist.container); } // on le renvoie return supprArtist.container; } }; document.observe('dom:loaded', function() { artists.init(); modifArtist.init(); supprArtist.init(); });
Nats

Mammouth du PHP | 661 Messages

10 janv. 2010, 21:33

Salut :

Vite fait :

- il manque une virgule ligne 164 (fin de la method getContainer())
- et ligne 243 ... on retrouve à nouveau la method getContainer !...

J'ai dl ton script, demain j'y jette un oeil, et je commence par l'optimiser pour prototype !... Bonne soirée ;)

Eléphanteau du PHP | 38 Messages

11 janv. 2010, 10:57

Salut,
J'ai rajouté la virgule ligne 164.
On retrouve la methode getContainer parce que je fais afficher à nouveau un tableau de contrôle une fois la modification apportée.
Je ne suis peut être pas la bonne logique, je suis ouvert à toutes propositions.
Nats

Mammouth du PHP | 661 Messages

11 janv. 2010, 13:27

ce que je voulais dire, c'est que c'est une erreur ... un Objet ne peux pas avoir deux méthodes qui se nomment de la même façon !! tu peux l'appeler 50 fois, mais ce sera toujours la même qui sera appelée !

je me lance à ton script pour le nettoyer @+

Eléphanteau du PHP | 38 Messages

12 janv. 2010, 10:07

Ok je vais voir également ce que je peux faire de mon côté
Nats