Page 1 sur 1

Enregistrer une grille de valeur en PHP

Posté : 28 mars 2013, 17:46
par MS2I
Je suis un peu perdu dans nom code et j'arrive pas à voir le résultat que je cherche , en fait j'ai 3 colonnes (Mois , P1, P2) , je veux afficher 12 lignes pour chaque colonne car je dois remplir le 2 chapms P1et P2 selon les mois (12 mois) , je veux pas faire le 12 mois dans une liste déroulante , aussi les valeurs à remplir ça dépend des années de coup j'ai mis les années dans une liste déroulante parce les années ça change avec l'année courante,
Là je veux que l'utilisateur choisisse l'année de la liste déroulante des années et après il remplisse le 12 lignes du chaque colonne et après quand il clique sur le bouton envoyé les données vont être enregistrer dans ma base, le problème dans mon code c'est :
- le serveur il prend que la dernière ligne et l'enregistre ( je sais pas quoi faire pour avoir le 12 lignes enregistrés)
- pour la liste déroulante quand je choisi l'année directement il prend l'année et actualise la page il ne laisse pas l'année choisie affiché et il me permet pas de rentrer les autres valeurs (P1, P2) , espérant que je suis arriver à exprimer bien qu'est ce je veux , pouvez m'aider de modifier le code de façon que peux avoir les résultats que je cherche j'arrive pas à avancer :( , merci d'avance.
là juste une petite explication comme je dans ma BD le 3 champs (Mois , P1 et P2) , pour le premier input je faisais comme ça <tr>
<td width="144"><input name="P1" type="text" id="P1"></td>
<td width="144"><input name="P2" type="text" id="P2"></td>
<td width="144"><input name="Mois" type="text" id="Mois"></td>
</tr> et du coup il m'enregistre que la valeurs de la 1 ère ligne
et pour les autres nom , parce que en fait pour le valeur name dans les input ça marche avec les noms de champs de ma bases , donc je sais pas quoi faire pour avoir afficher le 12 input et quand je les remplissent il m'enregistre tous les valeurs :?: :?:
Voilà mon code source :
<?php 
require_once('dbconnect.php'); 
?> 
<html> 
<head> 
<title>ESPACE PRIVE </title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<link href="styles.css" rel="stylesheet" type="text/css"> 
</head> 
<body> 
<p align="center" class="titre"><strong>- : : : Les paramètres du bases : : : -</strong></p> 
<br> 
<?php 
//On verifie que le formulaire a été envoye 
if(isset( $_POST['annee']) && isset($_POST['Mois']) && isset($_POST['P1']) && isset($_POST['P2'])) 
{ 
//mettre les variables dans une requette SQL 
$annee = $_POST['annee']; 
$Mois = $_POST['Mois']; 
$P1 = $_POST['P1']; 
$P2 = $_POST['P2']; 
$sql='INSERT INTO parmetres( annee, Mois, P1, P2 ) VALUES ("'.$annee.'", "'.$Mois.'", "'.$P1.'","'.$P2.'")'; 
$requete = $db->query($sql) ; 
} 
else{ 
} 
?> 
<form action="parametre.php" method="post" name="formulaire" > 
<table width="350" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee" class="tableaux"> 
<TR><TH>Mois</TH><TH>P1</TH><TH>P2</TH></TR> 
<tr> 
<td width="144"><input name="P1" type="text" id="P1"></td> 
<td width="144"><input name="P2" type="text" id="P2"></td>
<td width="144"><input name="Mois" type="text" id="Mois"></td> 
</tr>  
<tr>
<td width="144"><input name="P1" type="text" id="P1"></td>
<td width="144"><input name="P2" type="text" id="P2"></td> 
<td><input name="Mois" type="text" id="Mois"></td> 
</tr> 
<tr>
<td> 
<?php 
echo '<select name="annee" onchange="submit()">'; 
$annee=date("Y"); 
echo '<option value="">Choisir une année...</option>'; 

for($i=2010;$i<=$annee ;$i++){ 
echo '<option value="'.$i.'">'.$i.'</option>'; 

} 
echo '</select>'; 
echo '<br /><br />'; 
?> 
</td> 
</tr> 
<tr> 
<td height="50" colspan="2"><div align="center"> 
<input type="submit" name="envoi" value="Envoyer"> 
</tr> 
</table> 
</form> 
</body> 
</html> 
<html> 

<div class="foot"><a href="accueil.php">Retour à l'accueil</a></div> 

</body> 
</html>

Re: PHP

Posté : 28 mars 2013, 18:43
par moogli
salut,


syntaxe tableau pour les noms de champs (exemple name="p1[]" ) + un foreach pour parcourir le tableau $_POST et insérer dans la base.


s'il y a un refresh au changement de la liste déroulante c'est surement a cause d'un bout de javascript sur le onchange ou onselect.

@+