bonjour,
j'ai un petit soucis pour supprimer une ligne d'un tableau, je suis en php en modele MVC et mon soucis est apparement dans mon index.js
Si quelqu'un pouvais me guider, j'en serai ravis
Version imprimable
bonjour,
j'ai un petit soucis pour supprimer une ligne d'un tableau, je suis en php en modele MVC et mon soucis est apparement dans mon index.js
Si quelqu'un pouvais me guider, j'en serai ravis
mon pluggin boule de cristal ne fonctionne plus ...
on peut avoir un bout de code ... ?
ce genre de sujet à déja été traité et resolu
ça passe par du removeChild()
voici mon code
mon index.js
ma vueCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function supprime() { //----------------détection de la ligne --------------- var i = 0; var ligne; while(document.getElementById("l"+i)!=null) { if(document.getElementById("ch"+i).checked) ligne = i; i++; } alert(data); var nom = document.getElementsByTagName("tr")[ligne+1].getElementsByTagName("td")[1].innerHTML; alert('Vous allez supprimer '+nom); var data = 'demande=supprime&id_client='+nom; envoiAjax(data); }
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 <?php /* * vue de l'annuaire */ header('Content-Type: text/html; charset=ISO-8859-1'); //pour les accents $chaineAnnuaire=' <table id="table" border="1"> <td>nom</td> <td>prenom</td> <td>mail</td> <td>telephone portable<td>'; foreach($tabclient as $tabclient ) { $chaineAnnuaire.='<tr><td>'. $tabclient['nom'] . '</td>'; $chaineAnnuaire.= '<td>' . $tabclient['prenom'] . '</td>'; $chaineAnnuaire.= '<td>' . $tabclient['e_mail'] .'</td>'; $chaineAnnuaire.= '<td>' . $tabclient['tel_portable'] .'</td>'; $chaineAnnuaire .= '<td ><input type="checkbox" id="ch'.$tabclient.'" ></td></tr>'; } $chaineAnnuaire .= '</table>'; return 'panDroite##'.$chaineAnnuaire; ?>
mon controleur
la console d'erreur m'affiche:Code:
1
2
3
4
5
6
7
8 //------------action supprime un client ------- function supprime() { $connBdd = connexionBdd(); $connBdd->supprime($_POST['id_client']) ; $connBdd->fermeBdd(); vueAnnuaire(); }
Citation:
document.getElementsByTagName("tr")[ligne+1] is undefined
le code html généré serait apprécié ...
en plus on voit même pas ou elle est appelée ta fonction supprime ..
Bonjour,le message est pourtant clair : ta gestion des indices n'est pas bonne : tu tombes en dehors des lignes existantes.
Ce que je ne comprends c'est pourquoi faire une boucle alors qu'il n'y a visiblement possibilité de ne supprimer qu'une ligne à la fois.
Stocke l'id de la ligne lors du check : ça simplifiera déjà pas mal ...
Sans compter que pour supprimer une ligne d'une table, je ne vois vraiment pas l'utilité de repasser par le serveur :koi:
Un deleteRow() (ou removeChild() ) suffirait ...
A+
voici ma vue generale mais je vois pas le rapport
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 <?php /* * Vue générale */ $chaineVueGenerale = ' <html> <head> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <!--========================================================--> <script language="Javascript" type="text/javascript" src="index.js"></script> <link rel="stylesheet" type="text/css" href="index.css"> </head> <!--========================================================--> <div id = "page"> <body onLoad = "envoiAjax(\'demande=vueMenu\')"> <div id = "titre"><img src = "images/header.png" alt="baniere" title="administration"></div> <div id = "panGauche"> <div id = "accueil"><a href="vueGenerale.php" title="accueil">Accueil</a></div> <div id = "admin"><a href="vueGenerale.php" title="administration">Administration</a></div> <div id = "menu"></div> <div id = "message"></div> </div> <div id="panDroite"> <div id="image"><img src ="images/admin3.png" alt=""></div> </div> </div> </body> </html> '; return $chaineVueGenerale; ?>
je suis desolé mais je suis debutant et je ne vois pas comment faire
A priori, il suffit de récupérer l'id de la ligne à supprimer lors du click sur(tu n'as qu'à définir l'id du <tr> en value de la checkbox, puisqu'elle n'a pas de value).Code:<input type="checkbox" id="ch'.$tabclient.'" >
Ensuite tu n'as plus qu'à faire unA+Code:document.getElementById('table').removeChild(document.getElementById('id_du_tr_recupere'));
j'ai fait ce que tu m'as dit, mais il m'affiche une autre erreur et ca ne veut pas marcher............
la console d'erreur me dit: uncaught exception:[exception "node was found" code: "8" nresult:"0x80530008...ect
ca marche mais j'ai tout changé , je te remercie quand meme pour ton aide.