8797 sujets

Développement web côté serveur, CMS

bonjour a tous

je suis actuellement en train de travailler sur un site web. Il faudrai que l'on puisse remplir un formulaire et que ces variables puissent etre reutilisees sur la meme page afin d'afficher si les objectifs snt atteints mais aussi de les enregistrer dans ma base de donnée.

En clair, j'ai des cases a remplir, je voudrai pouvoir utiliser les valeurs directement dans ma page, mais aussi pouvoir les enregistrer dans la database.

Je vous montre mon code tel que je l'ai ecrit au jour d'aujourd hui.
<?php
session_start();

$db = mysql_connect('localhost','root','');
mysql_select_db('smiromar',$db);
//user_id=$_SESSION['user_id'];
print("<html>
<head>
<title>romarForm</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>

<body>
<p>&nbsp; </p>
</body>
</html>


<td valign=\"top\"> <div align=\"center\"> 
        <form name=\"report\" method=\"post\" action=\"\">
          <table width=\"750\" border=\"4\" cellspacing=\"0\" cellpadding=\"0\">
            		
							
							
                          <td height=\"23\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\"></div></td>
                        </tr>
                        <tr class=\"text\" height=\"50\"> 
                          <td height=\"24\" bgcolor=\"C9BCB4\"><strong>Monday</strong></td>
                          <td height=\"22\" align=\"absmiddle\" bgcolor=\"E8D9BC\" > <div align=\"center\"> 
                              <input name=\"mon_contacts\" type=\"text\"  class=\"text\"id=\"mon_contacts\" size=\"5\" maxlength=\"3\">
                            </div></td>
<td height=\"5\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\"> 
                              <input name=\"mon_appointm\" type=\"text\"  class=\"text\"id=\"mon_appointm\" size=\"5\" maxlength=\"3\">
                            </div></td>
                          <td height=\"5\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\"> 
                              <input name=\"mon_youinc\" type=\"text\"  class=\"text\"id=\"mon_youinc\" size=\"5\" maxlength=\"3\">

                            </div></td>
                          <td height=\"5\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\"> 
                              <input name=\"mon_closes\" type=\"text\"  class=\"text\"id=\"mon_closess\" size=\"5\" maxlength=\"3\">
                            </div></td>
                          <td height=\"5\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\"> 
                              <input name=\"mon_sales\" type=\"text\"  class=\"text\"id=\"mon_sales\" size=\"5\" maxlength=\"3\">
                            </div></td>
                          <td height=\"5\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\"> 
                              <input name=\"mon_newprosp\" type=\"text\"  class=\"text\"id=\"mon_newprosp\" size=\"5\" maxlength=\"3\">

                            </div></td>
                          
						$Contacts_reel = $mon_contacts + $tue_contacts + $wed_contacts + $thu_contacts + $fri_contacts + $sat_contacts;
						$Appointm_reel = $mon_appointm + $tue_appointm + $wed_appointm + $thu_appointm + $fri_appointm + $sat_appointm;
						$Youinc_reel = $mon_youinc + $tue_youinc + $wed_youinc + $thu_youinc + $fri_youinc + $sat_youinc;
						$Closes_reel = $mon_closes + $tue_closes + $wed_closes + $thu_closes + $fri_sales + $sat_sales;
						$Sales_reel = $mon_sales + $tue_sales + $wed_sales + $thu_sales + $fri_sales + $sat_sales;
						$Newprosp_reel = $mon_newprosp + $tue_newprosp + $wed_newprosp + $thu_newprosp + $fri_newprosp + $sat_newprosp;
						
                        print ("<tr class=\"text\" height=\"50\"> 
                          <td height=\"23\" bgcolor=\"C9BCB4\"><strong>Total</strong></td>

                          <td height=\"23\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\">"); 
                           If ( $Contacts_reel >= $mygoal_contact)
						      print("<color=\"green\" input name=\"total_contacts\" type=\"text\"  class=\"text\"id=\"total_contacts\" size=\"5\" maxlength=\"3\">");
							else print("<color=\"red\"input name=\"total_contacts\" type=\"text\"  class=\"text\"id=\"total_contacts\" size=\"5\" maxlength=\"3\">");  
                            print("</div></td>
                          <td height=\"23\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\">"); 
                              If ( $Appointm_reel >= $mygoal_appointm)
						      print("<color=\"green\" input name=\"total_appointm\" type=\"text\"  class=\"text\"id=\"total_appointm\" size=\"5\" maxlength=\"3\">");
							else print("<color=\"red\" input name=\"total_appointm\" type=\"text\"  class=\"text\"id=\"total_appointm\" size=\"5\" maxlength=\"3\">");
                            print("</div></td>
                          <td height=\"23\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\">"); 
                             If ( $Youinc_reel >= $mygoal_youinc)
						      print("<color=\"green\" input name=\"total_youinc\" type=\"text\"  class=\"text\"id=\"total_youinc\" size=\"5\" maxlength=\"3\">");
							else print("<color=\"red\"input name=\"total_youinc\" type=\"text\"  class=\"text\"id=\"total_youinc\" size=\"5\" maxlength=\"3\">");  
                            print("</div></td>
?>



j'espere que vous pourrer m'aider.
Modifié par rutickuck (06 Jul 2005 - 23:55)
Ton code est absolument illisible Smiley cligne

Il y a beaucoup de tableaux, de trucs imbriqués, de balises font, tout ça n'est pas joli joli Smiley cligne

Concernant ton autre problème par contre, je ne vois pas trop ce que tu veux faire ou ce qui te pose problème...
Lu,

si tu veux réafficher des infos après soumission du formulaire tu peux passer par une variable de session(ici il faut faire une copie de $_POST)

Fais une recherche sur les sessions. Bon courage.
j'ai enleve une bonne partie de mon code ce qui le rend plus lisible, enfin je l'espere.

Je l'explique brievement

chaque utilisateur rentre ls valeurs des ventes rendez vous at autres activites jour ares jour ( je n'ai laisser que lundi mais il faut le fire pour les 5 autres jours.)
ensuite dans la derniere ligne, on fait le total de tout et on voit si ca correspond aux objectifs fixés.

Mon probleme numero 1: extraire les valeurs inscrites dans le formuliare et les reutiliser plus loin dans la page. ( pour faire les sommes)

mon probleme numero 2: extraire les valeurs du formulaire afin de les enregistrer dans une database ain que l'utilisateur n'ai pas tous les jours a rentrer les valeurs des jours precedents.

j'espere que j'ai reussi a etre plus clair
Solution N°1:
Enlevez tous les \ avant les " inutiles dans pratiquement tout ton code!
Solution N°2:
Enléve les parties tableau (<table><TR><TD> ...)
On s'en fiche pour ton problème

Ainsi ton code sera plus lisible et aére-le!
ça me donnera peut etre envie de le lire ainsi.
Modifié par Pops83 (07 Jul 2005 - 17:44)
Pops83 a écrit :
Solution N°1:
Enlevez tous les \ avant les " inutiles dans pratiquement tout ton code!
Ainsi ton code sera plus lisible et aére-le!
ça me donnera peut etre envie de le lire ainsi.


Ils sont utiles au contraire ! ils échapent la fermeture du print ("") initial, sans ça y a plus rien.
les \ place avant les " permettent tout simplement au guillemets du print de ne pas se fermer des la lecture du premier "...
Je vais peut etre proceder par etapes.

     <td height=\"23\" align=\"absmiddle\" bgcolor=\"E8D9BC\"> <div align=\"center\"></div></td>
                             </tr>
                             <tr class=\"text\" height=\"50\">  
                               <td height=\"24\" bgcolor=\"C9BCB4\"><strong>Monday</strong></td>
                               <td height=\"22\" align=\"absmiddle\" bgcolor=\"E8D9BC\" > <div align=\"center\">  
                                   <input name=\"mon_contacts\" type=\"text\"  class=\"text\"id=\"mon_contacts\" size=\"5\" maxlength=\"3\">
                                 </div></td>");
                                      if ($_POST['mon_contacts'] != "") {
                                              $_SESSION['mon_contacts']=$_POST['mon_contacts'];
                                                 echo "post text";
                                         }


voila le premier probleme sur lequel je tombe.

j'obtient un lessage d'erreur:

Notice: Undefined index: mon_contacts in c:\program files\easyphp1-8\www\thomas\romarform2.php on line 222

je sais pas ou est l'erreur en fait ( sachant que le ligne 222 c'est le if).

Si vous avez des idees n'hesitez pas
Bonjour,

Personnellement je n'utilise jamais les \ et pourtant j'y arrive. Essaye d'alterner entre les guillemets doubles (") et les guillemets simples ('). ex :


echo '<div div="exemple"></div>';


En sachant que je laisse les guillemets doubles pour le xhtml.

Sinon, sur ton code, avant le if (ligne du dessus) il y a une paranthèse entre un guillemet et le ; Est-ce normal ? Qd un message d'erreur indique le début d'une ligne il s'agit souvent de la ligne du dessus souvent.

mon_contacts est le champ d'une table ?
en fait le ");
c'est la fin du print qui est au dessus dont je vous ai epargné lees details!!

mon_contacts est en fait le nom d'un champ t pas le nom d'une table.


je viens de trouver la solution a mon probleme. Mais le probleme viens de decendre d'une centzine de lignes. Je ne sais pas comment appeler cette variable.

je l'appele comme une variable normale( $nom;)
ou comme varable de session ($_session['nom'];)
mais j'ai une erreur
Notice: Undefined variable: mon_contacts in c:\program files\easyphp1-8\www\thomas\romarform2.php on line 383


Je vous donne quand meme la solution du probleme precedent:
     if (isset($_POST['mon_contacts'])){
        								 $_SESSION['mon_contacts']=$_POST['mon_contacts'];
       									 echo "post text";
    								}


merci
a écrit :
");
à la fin d'un print ? d'un print_r() ok mais je ne savais pas que l'on pouvait / devait mettre des parenthèses pour le print

a écrit :
Notice: Undefined variable: mon_contacts

essaye un truc simple, tout en haut de ta page un simple
<?php echo $_POST['mon_contacts'];

histoire de savoir si la variable passe qd tu clic sur ton "envoyer"…

A moins que Apache refuse les variables avec des fautes d'orthographes Smiley cligne
zzzazzz a écrit :
");
à la fin d'un print ? d'un print_r() ok mais je ne savais pas que l'on pouvait / devait mettre des parenthèses pour le print
print() comme echo() sont des fonctions PHP. On est pas obligé d'utiliser les parenthèses, mais ce n'est pas une erreur de syntaxe de les utiliser. Pour ma part, je les mets systématiquement comme pour toutes les fonctions (PHP ou utilisateur)

Ceci dit, il est parfaitement inutile d'insérer le HTML dans des print()/echo(), c'est alourdir le travail d'interprétation pour rien. Au lieu de :
if($condition = "qqch")
{
    echo("<p>Bla bla le ". $variable."</p>\n");
}

Il vaut mieux faire:
if($condition = "qqch")
{
?>
<p>Bla bla <?php echo($variable); ?></p>
<?php
}

À la rigueur, on pourrait faire :
if($condition = "qqch")
{
?>
<p>Bla bla <?=$variable?></p>
<?php
}

Mais je ne le recommande pas, l'option "shot_open_tag" est parfois désactivée chez certains hébergeurs.
En fait tu fais un print de tout ton code html!
Je te conseille plutot de fermer ta balise php juste avant ton print et de l'enlever ainsi que les / et tout ce qui est inutile.
Rouvre les balises php quand tu en as besoin par exemple quand tu utilise une variable.

Revenon au pb principal

 <form name=\"report\" method=\"post\" action=\"\">

Pourquoi tu ne met rien dans action? il faut mettre le nom de la page où tu veux envoyer tes données rentrées.

Je ne vois pas de bouton submit qui permet d'envoyer les données une fois remplit!
Il doit manquer un bout de code.
Et la partie de récupération avec les post,... elle est où?