Modifier et sauvegarder une valeur dans un tableau
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:
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> |
Code PHP:
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
| 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>"; |
Comment afficher ma valeur dans la cellule svp? Je ne parviens même pas à afficher l'alerte de test "poi" :\