Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2008, 14h38   #1
Invité de passage
 
Inscription : avril 2006
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 25
Points : 2
Points : 2
Par défaut Conserver une variable sur plusieurs pages

Bonjour à tous.
Meilleurs voeux informatiques pour cette nouvelle année.

Mon problème est le suivant:
Un utilisateur réalise la selection d'un nom au travers d'une liste de sélection.
Par la méthode POST, son choix est permet dans une autre feuille php de sélectionner des données dans une base.
Si je demande que les données sélectionnées s'affichent sur une feuille, cela fonctionne parfaitement.
mais je souhaite en fait n'afficher que 10 résultats par feuille. Donc mon script crée les liens 1, 2, 3, ....etc
Hors si je clique sur le lien 2 ou 3 les pages sont vides.
J'essaye de retourner le problème dans tous les sens, mais je ne trouve pas tout seul....

Pouvez vous m'aider ?

Merci.

Voici le code qui pose problème.

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
 
<?php @session_start();
?> 
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
         <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
            <head>
                <title>Mon super site</title>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
				<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="design.css" />
            </head>
 
            <body><body background="fond.png">
 
              <!-- L'en-tête -->
             <div id="en_tete">
               </div>
               <!-- Les menus -->
                 <div id="menu">        
                  <div class="element_menu">
                    <h3>Titre menu</h3>
                      <ul>
                          <li><a href="page1.html">Lien</a></li>
                          <li><a href="page2.html">Lien</a></li>
                           <li><a href="page3.html">Lien</a></li>
                       </ul>
                   </div>
 
                  <div class="element_menu">
                       <h3>Titre menu</h3>
                       <ul>
                          <li><a href="page4.html">Lien</a></li>
                           <li><a href="page5.html">Lien</a></li>
                           <li><a href="page6.html">Lien</a></li>
                       </ul>
                   </div>        
               </div>
 
               <!-- Le corps -->
 
               <div id="corps">
                   <h1>Travail réalisé</h1>
 
				<div id="table"
 
				<p class="pages">
 
 
 <?php 
  session_start();
  include 'conect.inc';
 $connection = mysql_connect($host,$user,$password)
       or die ("couldn't connect to server");
  $db = mysql_select_db($database,$connection)
       or die ("Couldn't select database");    
 
 $_SESSION['Nom'] = $_POST['Nom'];	 
 
//$donnees = mysql_query ("SELECT * FROM fiche_travail ");
 
 
 
// On met dans une variable le nombre de messages qu'on veut par page
 
$nombreDeMessagesParPage = 10; // Essayez de changer ce nombre pour voir :o)
 
// On récupère le nombre total de messages
 
$retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM fiche_travail WHERE Nom_trav = '{$_SESSION['Nom']}'");
 
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
 
// Puis on fait une boucle pour écrire les liens vers chacune des pages
 session_start();
 
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    echo '<a href="testliste.php?page=' . $i . '">' . $i . '</a> ';
}
?>
 
</p>
 <?php session_start();
 
 
 
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------
 
if (isset($_GET['page']))
{
        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
        $page = 1; // On se met sur la page 1 (par défaut)
}
echo "<input type='hidden' id='ID' name='ID' value='".$_POST['Nom']."' />";
 
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
 $donnees = mysql_query("SELECT * FROM fiche_travail where Nom_trav = '{$_SESSION['Nom']}' ORDER BY Id_travail DESC  LIMIT "
 . $premierMessageAafficher . "," . $nombreDeMessagesParPage);
 
{
 
      echo '<p align="center"><table bgcolor="#FFFFFF" border="4" cellpadding="4" cellspacing="2"></p>'."\n";
 
           echo '<tr>';
          echo '<td bgcolor="#006498"><font color="white"><b><u>Id_travail</u></b></font></td>';
           echo '<td bgcolor="#006498"><font color="white"><b><u>Nom_trav</u></b></font></td>';
           echo '<td bgcolor="#006498"><font color="white"><b><u>Date_deb</b></font></td>';
           echo '<td bgcolor="#006498"><font color="white"><b><u>Heure_deb</u></b></font></td>' ;
           echo '<td bgcolor="#006498"><font color="white"><b><u>Heure_fin</u></b></font></td>' ;
		   echo '<td bgcolor="#006498"><font color="white"><b><u>     </u></b></font></td>';
           echo '<td bgcolor="#006498"><font color="white"><b><u>Bureau_trav</u></b></font></td>' ;
           echo '<td bgcolor="#006498"><font color="white"><b><u>Domaine_trav</u></b></font></td>' ;
 
           echo '</tr>'."\n";
 
 
       while($row = mysql_fetch_array($donnees)){
 
           echo '<tr>';
           echo '<td bgcolor="#dddddd">'.$row["Id_travail"].'</td></font>';
           echo '<td bgcolor="#cccccc">'.$row["Nom_trav"].'</td></font>';
           echo '<td bgcolor="#dddddd">'.$row["Date_deb"].'</td></font>';
           echo '<td bgcolor="#dddddd">'.$row["Heure_deb"].'</td></font>';
          echo '<td bgcolor="#cccccc">'.$row["Heure_fin"].'</td></font>';
		   echo '<td bgcolor="#cccccc">'.$row["     "].'</td></font>';
                 echo '<td bgcolor="#dddddd">'.$row["Bureau_trav"].'</td></font>';
                 echo '<td bgcolor="#cccccc">'.$row["Domaine_trav"].'</td></font>';
 
 
 
         echo '</tr>'."\n";
       }
       echo '</table>'."\n";
 
}
mysql_close(); 
?>
				</div>
               </div>
 
               <!-- Le pied de page -->
 
               <div id="pied_de_page">
                   <p>Copyright "Tout pourri Corporation" 2005, tous droits réservés</p>
               </div>
 
           </body>
        </html>
orleans est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 14h48   #2
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 31
Points : 31
Points : 31
Bonjour,

Avant tout tu n'a pas besoin de faire autant d'appel à
Un unique appel de cette fonction en début de page suffit.

Ensuite, tu stocke régulièrement ton dans ta variable de session, donc si tu ne viens pas d'une validation de formulaire ta variable est une chaine vide, et ta requete n'est plus bonne.

Du coup essaye de remplacer :
Code :
$_SESSION['Nom'] = $_POST['Nom'];
par
Code :
if(isSet($_POST["nom"] )) $_SESSION['Nom'] = $_POST['Nom'];

i.e.:
- Si tu viens du formulaire, tu stocke ta variable en session
- Sinon ta variable est déjà censée être renseignée.
Eric_M_78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 17h44   #3
Invité de passage
 
Inscription : avril 2006
Messages : 25
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 25
Points : 2
Points : 2
Par défaut RESOLU Trop bien

Bonjour Eric

Merci de ta promptitude.
J'éspère pouvoir un jour en savoir assez pour à mon tour, .rendre service comme tu le fais.

Ca fonctionne parfaitement.

Juste une petite erreure.

if(isSet($_POST["nom"] )) il faut écrire Nom avec N majuscule.

Merci encore et à bientot....
orleans est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h37.


 
 
 
 
Partenaires

Hébergement Web