Problème d'affichage et d'enregistrement
Fermé
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
-
28 mars 2013 à 11:45
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 2 avril 2013 à 20:41
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 2 avril 2013 à 20:41
A voir également:
- Problème d'affichage et d'enregistrement
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Windows 11 affichage classique - Guide
- Comment agrandir l'affichage de l'écran - Guide
20 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 mars 2013 à 13:44
28 mars 2013 à 13:44
revois tes <tr></tr> tu as des lignes qui n'ont pas soit la balise ouvrante soit la fermante
tes <td></td> idem
et il faut ABSOLUMENT dans chaque ligne avoir le même nombre de colonnes, c'est à dire autant de <th></th> ou <td></td>
et ton pb vient surtout du fait que tu as le même name="P1"
name="P2" name="Mois" pour plusieurs input
dans ce cas c'est le dernier qui est pris en compte
tes <td></td> idem
et il faut ABSOLUMENT dans chaque ligne avoir le même nombre de colonnes, c'est à dire autant de <th></th> ou <td></td>
et ton pb vient surtout du fait que tu as le même name="P1"
name="P2" name="Mois" pour plusieurs input
dans ce cas c'est le dernier qui est pris en compte
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 13:55
28 mars 2013 à 13:55
d'accord je te demande si je change le name pour chaque input ça va pas influencer la bd , parce que dans la base j'en ai que 3 champs (Mois , P1 , P2 ) ??
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 14:02
28 mars 2013 à 14:02
j'ai corrigé l'erreur des balises et j'ai changé le nom dans les input
je faisais comme ça
<td width="144"><input name="P21" type="text" id="P21"></td>
<td><input name="Mois1" type="text" id="Mois1"></td>
mais ça change rien toujours il prend soit le premier champs soit le dernier :(
je faisais comme ça
<td width="144"><input name="P21" type="text" id="P21"></td>
<td><input name="Mois1" type="text" id="Mois1"></td>
mais ça change rien toujours il prend soit le premier champs soit le dernier :(
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 mars 2013 à 17:10
28 mars 2013 à 17:10
bon je t'ai fait ça:
avec une methode d'array pour différencier les <input des différents mois
( attention tu avait mis plusieurs fois <html></html> </body> une suele fois par page suffit)
avec une methode d'array pour différencier les <input des différents mois
( attention tu avait mis plusieurs fois <html></html> </body> une suele fois par page suffit)
<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"> <script type="text/javscript"> //fonction qui permet de verifier que l'année a bien été sélectionnée function verif_champs(){ var champ_annee=document.getElementById('annee'); if(champ_annee ==""){ alert("Vous devez chosir une année"); return false; //empeche l'envoi du formulaire } } </script> </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['envoi'])) { //connexio BDD, il suffit de le faire à ce moment là require_once('dbconnect.php'); //recup des valeurs postées $annee = $_POST['annee']; $arrayMois = $_POST['Mois']; $arrayP1 = $_POST['P1']; $arrayP2 = $_POST['P2']; //il faut faire autant de requette INSERT que de lignes remplies //on parcours l'array $arrayMois foreach($arrayMois as $mois=>$value){ //$mois = l'index qui va aussi servir dans les autres array // ex: P1[5] contient la valeur saisie dasn P1 du mois 5 if(!empty($arrayP1[$mois]) && !empty($arrayP2[$mois] )){ //si les deux champs P1 et P2 ont été remplis pour le mois considéré on enregistre dans la BDD //ta table se nomme parmetres ou parametres ?? $sql='INSERT INTO parametres( annee, Mois, P1, P2 ) VALUES ("'.$annee.'", "'.$mois.'", "'.$arrayP1[$mois].'","'.$arrayP1[$mois].'")'; //echo "<br />".$sql; $requete = $db->query($sql) ; } } } ?> <!-- ci dessous avec onsubmit="return verif_champs();" on vrifie en javascript que l'année a bien été sélectionnée, sinon le formulaire ne part pas --> <form action="parametre.php" method="post" name="formulaire" onsubmit="return verif_champs();" > <table width="350" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee" class="tableaux"> <tr><th>Année</th><th>Mois</th><th>P1</th><th>P2</th></tr> <?php //on va faire une boucle pour afficher tous les mois d'un coup //et pour l'année dans la première colonne sur une seule ligne grace au rowspan="12" for($n=1;$n<=12;$n++){ echo '<tr>'; //première colonne (année) if($n==1){ //si première ligne on met la liste déroulante année dans la colonne 1 echo '<td rowspan="12">'; //colonne qui fait les 12 lignes $annee=date("Y"); echo '<select name="annee" id="annee" >'; echo '<option value="">Choisir une année...</option>'; for($i=2010;$i<=$annee ;$i++){ echo '<option value="'.$i.'">'.$i.'</option>'; } echo '</select>'; echo '</td>'; } //suite des colonnes echo '<td>'; //ci dessous en mettant name= sous la forme xxxxx[] on va recevoir les valeurs des input dans un array $_POST['xxxx'] //le mois est déja rempli, on met readonly =>il ne peut pas être modifié, // si pas de valeur pour le mois les champs P1 P2 seront laissés vides, donc pas d'enr dans la BDD pour le mois echo '<input type="text" name="Mois['.$n.']" value="'.$n.'" readonly />'; echo '</td>'; echo '<td>'; //colonne P1 echo '<input type="text" name="P1['.$n.']" value="" />'; echo '</td>'; echo '<td>'; //colonne P2 echo '<input type="text" name="P2['.$n.']" value="" />'; echo '</td>'; echo '</tr>'; } ?> <tr> <td height="50" colspan="4" align="center"> <input type="submit" name="envoi" value="Envoyer"> </td> </tr> </table> </form> <div class="foot"><a href="accueil.php">Retour à l'accueil</a></div> </body> </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 17:22
28 mars 2013 à 17:22
Je te remercie beaucoup pour ton aide :) je vais le tester maintenant
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 mars 2013 à 17:32
28 mars 2013 à 17:32
si besoin on peut mettre les mois sous forme janvier février etc..
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
28 mars 2013 à 18:17
28 mars 2013 à 18:17
Si je veux bien le faire sous forme "janvier , février ..." mais je sais pas comment faire
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 mars 2013 à 18:53
28 mars 2013 à 18:53
Voilà:
(attention il y avait deux petites erreurs au début de mon code javascript)
(attention il y avait deux petites erreurs au début de mon code javascript)
<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"> <!-- j'avait fait deux c...ies ci dessous une dans <script... et l'autre dans if(champ_annee.--> <script type="text/javascript" > //fonction qui permet de verifier que l'année a bien été sélectionnée function verif_champs(){ var champ_annee = document.getElementById('annee'); if(champ_annee.value ==""){ alert("Vous devez choisir une année"); return false; //empeche l'envoi du formulaire } } </script> <style type="text/css"> .input_mois { background-color:#A9AEAD; text-align:center; } </style> </head> <body> <p align="center" class="titre"><strong>- : : : Les paramètres du bases : : : -</strong></p> <br> <?php //initialisation de l'array des mois $array_list_mois=array("1"=>"Janvier","2"=>"Février","3"=>"Mars","4"=>"Avril","5"=>"Mai","6"=>"Juin","7"=>"Juillet","8"=>"Aout","9"=>"Septembre","10"=>"Octobre","11"=>"Novembre","12"=>"Décembre"); //On verifie que le formulaire a été envoye if(isset( $_POST['envoi'])) { //connexion BDD, il suffit de le faire à ce moment là require_once('dbconnect.php'); //recup des valeurs postées $annee = $_POST['annee']; $arrayMois = $_POST['Mois']; $arrayP1 = $_POST['P1']; $arrayP2 = $_POST['P2']; //il faut faire autant de requette INSERT que de lignes remplies //on parcours l'array $arrayMois foreach($arrayMois as $mois=>$value){ //$mois = l'index qui va aussi servir dans les autres array // ex: P1[5] contient la valeur saisie dasn P1 du mois 5 if(!empty($arrayP1[$mois]) && !empty($arrayP2[$mois] )){ //si les deux champs P1 et P2 ont été remplis pour le mois considéré on enregistre dans la BDD //ta table se nomme parmetres ou parametres ?? $sql='INSERT INTO parametres( annee, Mois, P1, P2 ) VALUES ("'.$annee.'", "'.$mois.'", "'.$arrayP1[$mois].'","'.$arrayP1[$mois].'")'; //si tu veux enregistrer le nom du mois au lieu du numéro remplaces $sql par: //$sql='INSERT INTO parametres( annee, Mois, P1, P2 ) VALUES ("'.$annee.'", "'.$value.'", "'.$arrayP1[$mois].'","'.$arrayP1[$mois].'")'; //echo "<br />".$sql; $requete = $db->query($sql) ; } } } ?> <!-- ci dessous avec onsubmit="return verif_champs();" on vrifie en javascript que l'année a bien été sélectionnée, sinon le formulaire ne part pas --> <form action="parametre.php" method="post" name="formulaire" onsubmit="return verif_champs();" > <table width="350" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee" class="tableaux"> <tr><th>Année</th><th>Mois</th><th>P1</th><th>P2</th></tr> <?php //on va faire une boucle pour afficher tous les mois d'un coup //et pour l'année dans la première colonne sur une seule ligne grace au rowspan="12" for($n=1;$n<=12;$n++){ echo '<tr>'; //première colonne (année) if($n==1){ //si première ligne on met la liste déroulante année dans la colonne 1 echo '<td rowspan="12">'; //colonne qui fait les 12 lignes $annee=date("Y"); echo '<select name="annee" id="annee" >'; echo '<option value="">Choisir une année...</option>'; for($i=2010;$i<=$annee ;$i++){ echo '<option value="'.$i.'">'.$i.'</option>'; } echo '</select>'; echo '</td>'; } //suite des colonnes echo '<td>'; //ci dessous en metant name= sous la forme xxxxx[] on va recevoir les valeurs des input dans un array $_POST['xxxx'] //le mois est déja rempli, on met readonly =>il ne peut pas être modifié, // si pas de valeur pour le mois P1 P2 les champs seront laissés vides, donc pas d'enr dans la BDD pour le mois echo '<input type="text" name="Mois['.$n.']" value="'.$array_list_mois[$n].'" class="input_mois" readonly />'; echo '</td>'; echo '<td>'; //colonne P1 echo '<input type="text" name="P1['.$n.']" value="" />'; echo '</td>'; echo '<td>'; //colonne P2 echo '<input type="text" name="P2['.$n.']" value="" />'; echo '</td>'; echo '</tr>'; } ?> <tr> <td height="50" colspan="4" align="center"> <input type="submit" name="envoi" value="Envoyer"> </td> </tr> </table> </form> <div class="foot"><a href="accueil.php">Retour à l'accueil</a></div> </body> </html>
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
29 mars 2013 à 09:33
29 mars 2013 à 09:33
Bonjour Alain_42
en fait j'ai essayé ton code il n'affiche aucun erreur mais il n'enregistre rien dans la base des données :( , c'est quoi le problème
en fait j'ai essayé ton code il n'affiche aucun erreur mais il n'enregistre rien dans la base des données :( , c'est quoi le problème
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 29/03/2013 à 10:00
Modifié par Alain_42 le 29/03/2013 à 10:00
vérifies dans cette requette que le nom de ta table et de tes champs est bien exact:
$sql='INSERT INTO parametres( annee, Mois, P1, P2 ) VALUES ("'.$annee.'", "'.$mois.'", "'.$arrayP1[$mois].'","'.$arrayP1[$mois].'")';
et rectifies j'ai mis deux fois $arrayP1
$sql='INSERT INTO parametres( annee, Mois, P1, P2 ) VALUES ("'.$annee.'", "'.$mois.'", "'.$arrayP1[$mois].'","'.$arrayP1[$mois].'")';
et rectifies j'ai mis deux fois $arrayP1
$sql='INSERT INTO parametres( annee, Mois, P1, P2 ) VALUES ("'.$annee.'", "'.$mois.'", "'.$arrayP1[$mois].'","'.$arrayP2[$mois].'")';
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
29 mars 2013 à 10:04
29 mars 2013 à 10:04
c'est bon j'ai trouvé l'erreur merci beaucoup pour ton aide , par contre
je veux faire Une table scénario qui liée à stérilisateur et ses paramètres saisies.
Id, id_utilisateur, zone commentaire , recharger le scénario ( récupérer) , tu as pas une idée comment je peux faire ???
je veux faire Une table scénario qui liée à stérilisateur et ses paramètres saisies.
Id, id_utilisateur, zone commentaire , recharger le scénario ( récupérer) , tu as pas une idée comment je peux faire ???
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 mars 2013 à 10:10
29 mars 2013 à 10:10
je ne saisi pas trop ce que tu veux faire ?
et le rapport avec ce que on a fait précédemment ?
et le rapport avec ce que on a fait précédemment ?
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
29 mars 2013 à 10:16
29 mars 2013 à 10:16
oui je veux après que le l'utilisateur saisie ses valeurs il peut avoir une table scénario qui liée cet utilisateur et ses valeurs saisies et aussi il peut avoir une zone de commentaire , et il peut récupérer son scénario
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 mars 2013 à 13:05
29 mars 2013 à 13:05
en fait tu veuw qu'après avoir enregistré des valeurs pour une année, ça réaffiche le tableau avec les valeurs déja saisies, plus une zone pour rajouter des commentaires
q? est ce que ta partie saisie des valeurs P1 P2 est dasn la page parametre.php ? c a d dans le mêm script que la partie php qui enregistre ?
q? est ce que ta partie saisie des valeurs P1 P2 est dasn la page parametre.php ? c a d dans le mêm script que la partie php qui enregistre ?
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
29 mars 2013 à 13:20
29 mars 2013 à 13:20
oui exactement que je veux , oui pour la partie saisie c'est dans la page paramètre.php
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 mars 2013 à 13:38
29 mars 2013 à 13:38
donc ok après enregistrement réussi, on va lire ce qui a été enregistré dans la bdd et afficher un récapitulatif de ce qui a été saisi et effectivement enregistré pour l'année.
Plus une zone de commentaires
Veux tu que les chiffres P1 P2 soient modifiables ?
enregistrement ensuite des commentaires dans quelle table ?
Plus une zone de commentaires
Veux tu que les chiffres P1 P2 soient modifiables ?
enregistrement ensuite des commentaires dans quelle table ?
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
29 mars 2013 à 14:08
29 mars 2013 à 14:08
oui je vais dés l'utilisateur va choisir l'un de scénario dés valeurs qui sont déjà saisie , il peut après modifier les valeurs et il les enregistres de nouveaux , et pour le commentaire en fait je vais faire une table scénario dans laquelle je veux enregistrés tout les scénarios avec les commentaires
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
29 mars 2013 à 15:26
29 mars 2013 à 15:26
cc Alain_42 tu es toujours là ?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 29/03/2013 à 17:46
Modifié par Alain_42 le 29/03/2013 à 17:46
me revoilà, mais je ne comprend pas tout ?
l'utilisateur va choisir l'un de scénario dés valeurs qui sont déjà saisie
ce que tu appelle un scénario c'est une année avec les valeurs correspondantes ?
ou une année a plusieurs couples de valeurs ?
Plus haut tu parles d'utilisateur, donc un scénario= année+valeurs pour chaque utilisateur. ?
Est ce qu'un utilisateur peut faire plusieurs scénario ?
je ne vois pas comment l'utilisateur va afficher les différents scénario ?
Comment fais tu pour identifier l'utilisateur (saisie login /mot de passe)
Si tu fais une deuxième table ID, Id_utilisateur,Commentaires
il te manque au moins un champ dans la table Annee, mois, P1,P2 pour faire le lien entre les deux.
l'utilisateur va choisir l'un de scénario dés valeurs qui sont déjà saisie
ce que tu appelle un scénario c'est une année avec les valeurs correspondantes ?
ou une année a plusieurs couples de valeurs ?
Plus haut tu parles d'utilisateur, donc un scénario= année+valeurs pour chaque utilisateur. ?
Est ce qu'un utilisateur peut faire plusieurs scénario ?
je ne vois pas comment l'utilisateur va afficher les différents scénario ?
Comment fais tu pour identifier l'utilisateur (saisie login /mot de passe)
Si tu fais une deuxième table ID, Id_utilisateur,Commentaires
il te manque au moins un champ dans la table Annee, mois, P1,P2 pour faire le lien entre les deux.
MS2I
Messages postés
53
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
5 juillet 2013
2 avril 2013 à 09:32
2 avril 2013 à 09:32
Bonjour Alain_42
en fait , j'ai une table utilisateur dans laquelle j'ai l'Id-utilisateur et et pour la table Annee , mois, P1, P2 j'ai ajouté un champ id-valeur , du coup la table commentaire j'ai id, id-utilisateur , id-valeur , titre , commentaire .
Je veux quand l'utilisateur se connecte si il avait des valeurs enregistrés il va avoir le tableau qu'on déjà (Anne , mois , P1 ,P2 ) et une liste déroulante qui contient le titre de scénarios (si il a enregistré plusieurs scénarios ) et selon son choix de titre on va afficher le tableau de valeurs qui avait enregistré avec le commentaire et il change ses valeurs après l'affichage .
donc il y a un test qui va voir si l'utilisateur il a déjà des valeurs du coup il va avoir un affichage de tableau avec liste déroulante qui contient les titres de scénarios .
si il a pas de valeurs enregistrés il va entrer ses valeurs dans le tableau et il va pas avoir la liste déroulante dés la première fois qu'il saisie ses valeurs
en fait , j'ai une table utilisateur dans laquelle j'ai l'Id-utilisateur et et pour la table Annee , mois, P1, P2 j'ai ajouté un champ id-valeur , du coup la table commentaire j'ai id, id-utilisateur , id-valeur , titre , commentaire .
Je veux quand l'utilisateur se connecte si il avait des valeurs enregistrés il va avoir le tableau qu'on déjà (Anne , mois , P1 ,P2 ) et une liste déroulante qui contient le titre de scénarios (si il a enregistré plusieurs scénarios ) et selon son choix de titre on va afficher le tableau de valeurs qui avait enregistré avec le commentaire et il change ses valeurs après l'affichage .
donc il y a un test qui va voir si l'utilisateur il a déjà des valeurs du coup il va avoir un affichage de tableau avec liste déroulante qui contient les titres de scénarios .
si il a pas de valeurs enregistrés il va entrer ses valeurs dans le tableau et il va pas avoir la liste déroulante dés la première fois qu'il saisie ses valeurs
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
2 avril 2013 à 20:41
2 avril 2013 à 20:41
je t'ai mis un MP