Bonjour à tous,
je code un formulaire qui contient un tableau, et je voudrais pouvoir modifier une cellule du tableau en cliquant dessus, puis je modifie la valeur dans un prompt() et enfin je recharge le div qui englobe la cellule.
C'est sur cette dernière étape que j'ai un problème.
Après plusieurs essais, voici la partie concernée de mon code:
Dans le header:
Code PHP:
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> </script> <script type="text/javascript"> //function displayValue() { $(".toreload").on('click',function() {alert("poi"); // je récupère les valeurs var saisie = $('#saisie').val(); alert('saisie js:'+saisie); // je vérifie une première fois pour ne pas lancer la requête HTTP // si je sais que mon PHP renverra une erreur if(saisie == ''){ alert('Les champs doivent êtres remplis'); } else { // appel Ajax $.ajax({ url: $(this).attr('action'), // le nom du fichier indiqué dans le formulaire type: $(this).attr('method'), // la méthode indiquée dans le formulaire (get ou post) data: $(this).serialize(), // je sérialise les données (voir plus loin), ici les $_POST success: function(html) { // je récupère la réponse du fichier PHP $('div.toreload').html(); } }); } return false; // j'empêche le navigateur de soumettre lui-même le formulaire }); //}; </script> <script language="JavaScript"> function changeValue(r,t,v){ var rows = document.getElementById("tableau").rows; var numOfRows = rows.length var numOfCols = rows [0].cells.length; var rowElement = rows[t]; var cellNode = rowElement.cells[v]; if(confirm ("Vous aller modifier la valeur: "+ cellNode.innerHTML)) var saisie = prompt("Nouvelle valeur:", cellNode.innerHTML); if (saisie!=null) { document.forms["compare"].elements["name"+r+t+v].value=saisie; alert(document.forms["compare"].elements["name"+r+t+v].value); } } </script>
Comment afficher ma valeur dans la cellule svp? Je ne parviens même pas à afficher l'alerte de test "poi" :\
Code php : 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
24
25
26 echo "<form id='compare' method='post' action ='modif.php'>"; [...] echo "<table id='tableau'>"; $t=1; $r=1; foreach($liste1 as $ligne => $donnees){ echo "<tr id='ligne'><td style='background-color:#ccc'><input type='checkbox' id='check1' name='valeur.$r.$t' value='".implode(";",$donnees)."'></td>"; $liste1_all[]=implode(";",$donnees); //echo "liste1_all:"; print_r($liste1_all); $v=1; foreach($donnees as $cle => $value){ if(in_array($value,array_keys($tab_compare)) && isset($tab_compare[$value]) && isset($title1[$cle]) && strtoupper($title1[$cle])==$tab_compare[$value]) // on filtre aussi sur le titre echo "<div id='toreload' class='toreload'><td style='background-color:#7FDD4C' onclick='changeValue($r,$t,$v);'>"; //vert else echo "<div id='toreload' class='toreload'><td style='background-color:#FF5E4D' onclick='changeValue($r,$t,$v);'>"; //rouge echo utf8_decode($value); echo "</td></div>"; echo "<input type='hidden' id='id$r$t$v' name='name$r$t$v' value='$value'>"; $v++; } $t++; echo "</tr>"; } echo "</table>";
Partager