IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

système de pagination avec donnée de formulaire [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    458
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 458
    Par défaut système de pagination avec donnée de formulaire
    Bonjour,

    J'ai réussis à faire une pagination donc en gros j'affiche 20 élément de ma requette sur les 1000 éléments, là sa marche par contre je perd toujours les champs mis sur mon formulaire.

    exemple je fais une recherche sur tous ce qui concerne l'année 2010 sa me sort les 50 premier élément sur ma page et en bas il me dit que j'ai encore 5 page ( << 1 2 3 4 5 ) si je clique sur la page 2 ou 3... je perd ma recherche de 2010 et c'est comme si ma requête repartait à 0.

    Du coups là je suis un peu perdu es-ce que je garde en variable de session mes champs, es-ce que je les passes en $_GET??

    si quelqu'un à une idée ou une solution merci de m'éclairer sur mon problème je sais qu'il devrait y avoir une solution plus pratique.

    Voici la fonction que j'utilise sa peu peu-être vous aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    //permet d'avoir plusieur page pour une requette
    function barre_navigation ($nb_total, $nb_affichage_par_page, $debut, $nb_liens_dans_la_barre) {
     
    	$barre = '';
     
    	// on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT
    	if ($_SERVER['QUERY_STRING'] == "") {
    		$query = $_SERVER['PHP_SELF'].'?debut=';
    	}
    	else {
    		$tableau = explode ("debut=", $_SERVER['QUERY_STRING']);
    		$nb_element = count ($tableau);
    		if ($nb_element == 1) {
    			$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
    		}
    		else {
    			if ($tableau[0] == "") {
    				$query = $_SERVER['PHP_SELF'].'?debut=';
    			}
    			else {
    				$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'debut=';
    			}
    		}
    	}
     
    	// on calcul le numéro de la page active
    	$page_active = floor(($debut/$nb_affichage_par_page)+1);
    	// on calcul le nombre de pages total que va prendre notre affichage
    	$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);
     
    	// on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin)
    	// exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11
    	if ($nb_liens_dans_la_barre%2==0) {
    		$cpt_deb1 = $page_active - ($nb_liens_dans_la_barre/2)+1;
    		$cpt_fin1 = $page_active + ($nb_liens_dans_la_barre/2);
    	}
    	else {
    		$cpt_deb1 = $page_active - floor(($nb_liens_dans_la_barre/2));
    		$cpt_fin1 = $page_active + floor(($nb_liens_dans_la_barre/2));
    	}
     
    	if ($cpt_deb1 <= 1) {
    		$cpt_deb = 1;
    		$cpt_fin = $nb_liens_dans_la_barre;
    	}
    	elseif ($cpt_deb1>1 && $cpt_fin1<$nb_pages_total) {
    		$cpt_deb = $cpt_deb1;
    		$cpt_fin = $cpt_fin1;
    	}
    	else {
    		$cpt_deb = ($nb_pages_total-$nb_liens_dans_la_barre)+1;
    		$cpt_fin = $nb_pages_total;
    	}
     
    	if ($nb_pages_total <= $nb_liens_dans_la_barre) {
    		$cpt_deb=1;
    		$cpt_fin=$nb_pages_total;
    	}
     
    	// si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
    	if ($cpt_deb != 1) {
    		$cible = $query.(0);
    		$lien = '<A HREF="'.$cible.'">&lt;&lt;</A>&nbsp;&nbsp;';
    	}
    	else {
    		$lien='';
    	}
    	$barre .= $lien;
     
    	// on affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
    	for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) {
    		if ($cpt == $page_active) {
    			if ($cpt == $nb_pages_total) {
    				$barre .= $cpt;
    			}
    			else {
    				$barre .= $cpt.'&nbsp;-&nbsp;';
    			}
    		}
    		else {
    			if ($cpt == $cpt_fin) {
    				$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
    				$barre .= "'>".$cpt."</A>";
    			}
    			else {
     
    				$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
    				$barre .= "'>".$cpt."</A>&nbsp;-&nbsp;";
    			}
    		}
    	}
     
    	$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
    	if (($nb_total % $nb_affichage_par_page) == 0) {
    		$fin = $fin - $nb_affichage_par_page;
    	}
     
    		// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
    	if ($cpt_fin != $nb_pages_total) {
    		$cible = $query.$fin;
    		$lien = '&nbsp;&nbsp;<A HREF="'.$cible.'">&gt;&gt;</A>';
    	}
    	else {
    		$lien='';
    	}
    	$barre .= $lien;
     
    	return $barre;
    }
    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 515
    Par défaut
    salut, peut t'on en voir plus sur ton code:
    ou se situe ta fonction pagination ,je suppose en bas de ta vue

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    458
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 458
    Par défaut
    Oui c'est en bas de ma vue

    là c'est mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    <div class="content_form_archive"> <center>
    	<br />
    	<p align='center' style="font-size: 18px;">Recherche Par:</p>
     
    	<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
     
    		<table>
     
     
    			<tr>
     
    			<td><label for="code_archive"><strong>Code archive :</strong></label></td>
    			<td><input type="text" class="style_input" name="code_archive" id="code_archive" value="<?php echo $cd_archive; ?>"/></td>
     
    			</tr>
     
    			<tr>
     
    			<td><label for="description"><strong>Description :</strong></label></td>
    			<td><input type="text"  class="style_input" name="description" id="description"/><?php echo $descript; ?></td>
     
    			</tr>
     
    			<tr>
     
    			<td><label for="commentaire"><strong>Status archive :</strong></label></td>
    			<td><input type="text" class="style_input" name="commentaire" id="commentaire"/><?php echo $comm; ?></td>
     
    			</tr>
     
     
    		</table>
    		<input type="submit" name="register" value="Rechercher" style="color:#004A99; font-weight:bold; padding:0px 5px;" />
    		<input type="button" name="csv" value="T&eacute;l&eacute;charger" style="color:#004A99; font-weight:bold; padding:0px 5px;" onclick="<?php echo$onclick ?>" />
     
    	</form>
    </center></div>

    et là c'est ma vue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
    <div class="content_tableau"> 
    	<center>
    		<br />
    		<p align='center' style="font-size: 18px;">Inventaire Archives</p>
     
    			<!-- <div id='tableau_scrollbar'> -->
    				<table  id="myTable" class="tablesorter">
    				<thead> 
    					<tr>
    						<th><b>Code Archive</b></th>
    						<th><b>S&eacute;lectionner Livraison</b></th>
    						<th><b>Description</b></th>
    						<th><b>Status archive</b></th>
    						<th><b>Commentaire</b></th>
    						<th><b>Date</b></th>
    					</tr>
    				</thead> 
    			<?php	
    					$objPHPExcel->setActiveSheetIndex(0)
    						->setCellValue('A1', 'Code Archive')
    						->setCellValue('B1', 'Description')
    						->setCellValue('C1', 'Status archive')
    						->setCellValue('D1', 'Date')
    						->setCellValue('E1', 'Commentaire');
    					$row = 2;
     
    					while ($result = odbc_fetch_array($resultat)) {
     
    						//echo $result["Date"];
    						$annee = substr($result["Date"], 0, 4);
    						$mois = substr($result["Date"], 4, 2);
    						$jours = substr($result["Date"], 6, 2);
    						$date_excel = $jours."/".$mois."/".$annee;
    						$fich_csv = utf8_encode($result["CodeArchive"].";".$result["Commentaire02"].";".$result["Commentaire01"].";".$date_excel.";".$result["CommentaireClient"]);
     
    						$col = 0;
    						$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $fich_csv);
    						$row++;
     
     
    						//coche si il est dans le panier
    						if(array_key_exists($result['CodeArchive'], $_SESSION['panier'])){
    							$checked ='checked';
    						}else{$checked ='';}
     
    						//check si il est en stock ou pas
    						if(utf8_encode($result["Commentaire01"]) == utf8_encode('Restituée') || utf8_encode($result["Commentaire01"]) == utf8_encode('Archive en sortie client') || utf8_encode($result["Commentaire01"]) == utf8_encode('Archive restituée')){
    							$comm01 = "<span style='color:red;'>".utf8_encode($result["Commentaire01"])."<span>"; 
    							//gise la case si pas chez nous
    							$checked ='disabled="disabled"';
    						}else{
    							$comm01 = utf8_encode($result["Commentaire01"]);
    						}
     
    						?>
    						<tr>
    							<td><b><?php echo $result["CodeArchive"]; ?></b></td>
    							<td><b><center><input type="checkbox" name="check_archive[]" value="<?php echo $result['CodeArchive'] .'|'. utf8_encode($result["Commentaire02"]) ?>" <?php echo $checked; ?> ></center></b></td>
    							<td><b><?php echo utf8_encode($result["Commentaire02"]); ?></b></td>
    							<td><b><?php echo $comm01; ?></b></td>
    							<td><b><?php echo utf8_encode($result["CommentaireClient"]); ?></b></td>
    							<td><b><?php echo $jours."/".$mois."/".$annee; ?></b></td>
    						</tr>	
    							 <?php 
    					} ?>
    				</table>
     
    				<?php 
    				// on affiche enfin notre barre
    				echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 5).'</span>';
    				?><br /><br />
    				<input type="submit" name="check" value="Livraison" style="color:#004A99; font-weight:bold; padding:0px 5px;" />
     
    			<!-- </div> -->
     
    	</center>
    </div>
    <div id=boutton_fixe>
    	<input type="submit" name="check" value="Livraison" style="color:#004A99; font-weight:bold; padding:0px 5px; height:50px; width:100px;" />
    </div>
    </form>
    Comme tu peux le voir ma fonction ce retrouve en bas

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 515
    Par défaut
    je peux voir ton controller

  5. #5
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    458
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 458
    Par défaut
    Voilà là j'ai mis tous le code afin que tu puisses mieux comprendre et comme sa si quelqu'un à le même problème que moi sa pourra toujours mieux l'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
     
    <?php
    include('./includes/application_top.php');
    include('./business/tmpl_top.php');
     
     
     
    //check si connecté
    check_session($_SESSION);
     
    //redirection si il a pas la permission
    if ($_SESSION['ac_archives']=='non'){
    	header("location: archives_pdf.php");
    	exit();
    }
     
    $client_id = $_SESSION['client_id'];
    $fichier_csv = md5($client_id).".csv";
    $onclick = "self.location.href='csv/".$fichier_csv."'";
    $date_archivage ='';
    $commentaire ='';
    $commentaire_client ='';
    $description ='';
    $code_archive ='';
    $type_archive ='';
    $cd_archive ='';
    $descript ='';
    $comm ='';
    $dt_archive ='';
    $tp_archive ='';
    $msg_erreur ='';
    $archive_check ='';
    $checked ='';
    $error = FALSE;
     
    print_r($_POST);
     
    if (! isset($_SESSION['panier']))  $_SESSION['panier'] = array();
     
    if(isset($_POST["check"])){
    	//regarde si il y a des archives selectionnE
    	if($_POST["check_archive"] !=''){
    		//si oui on les recupre et on la redirige sur la page de contacte
    		foreach ($_POST["check_archive"] as &$value) {
    			$donnee=explode("|",$value);
    			$id_article   = isset($donnee[0])  ? $donnee[0]  : null;
    			$nom_article  = isset($donnee[1])  ? $donnee[1]  : null;
    			$_SESSION['panier'][$id_article]['nom']  = $nom_article;
    			 //$archive_check = $value;
    		}
    		// Voici les données externes utilisées par le panier
     
    		//header("Location: contacte.php?id_article=".mt_rand()."&nom_article=".$archive_check."&ajouter");
    		//exit();
    	}else{
    		$error = TRUE;
    		$msg_erreur =  SELECTIONNER_ARCHIVE;
    	}
     
    }elseif(isset($_GET["cd_article"])){
     
    	$donnee=explode("|",$_GET["cd_article"]);
    	$id_article   = isset($donnee[0])  ? $donnee[0]  : null;
    	$nom_article  = isset($donnee[1])  ? $donnee[1]  : null;
    	$_SESSION['panier'][$id_article]['nom']  = $nom_article;
    }elseif (isset($_GET['supprimer'])){
    	$id_article   = isset($_GET["id_article"])  ? $_GET["id_article"]  : null;
    	unset($_SESSION['panier'][$id_article]); // Supprimer un article du panier
    }elseif (isset($_POST['vider_articles'])){
    	unset($_SESSION['panier']); // Supprimer les articles du panier
    }
     
    //print_r($_POST["check_archive"]);
     
    // On regarde si l'utilisateur est bien passé par le module d'inscription
    if(isset($_POST["register"])){
     
    	$cd_archive = stripslashes($_POST["code_archive"]);
    	$descript = stripslashes($_POST["description"]);
    	$comm = stripslashes($_POST["commentaire"]);
    	$comm_client = stripslashes($_POST["commentaire_client"]);
    	$dt_archive = stripslashes($_POST["date_archivage"]);
    	$tp_archive = stripslashes($_POST["type_archive"]);
     
     
    	//date_archivage/commentaire/description/code_archive
    	if($cd_archive != ''){
    		$code_archive =" AND (CodeArchive~]'".$_POST["code_archive"]."')";
    	}
     
    	if($tp_archive != ''){
    		$type_archive =" AND (CodeArchive~]'".$_POST["type_archive"]."')";
    	}
     
    	if($descript != ''){
    		//$descript = addslashes($descript);
    		$description =  str_replace('?', "", $_POST["description"]);
    		$description =" AND (Commentaire02~]'".utf8_decode($description)."')";
    	}
     
    	if($comm != ''){
    		$commentaire =" AND (Commentaire01~]'".utf8_decode($_POST["commentaire"])."')";
    	}
     
    	if($comm_client != ''){
    		$commentaire_client =" AND (CommentaireClient~]'".utf8_decode($_POST["commentaire_client"])."')";
    	}
     
    	if($dt_archive != ''){
    		$date_archivage =" AND (Date~]'".$_POST["date_archivage"]."')";
    	}
     
    }
     
     
    $requete_total="SELECT * FROM liste WHERE (Code_Client='".$client_id."')".$code_archive.$type_archive.$description.$commentaire.$commentaire_client.$date_archivage." order by CodeArchive";
    $resultat_total = odbc_exec($connexion_odbc,$requete_total) or die( odbc_errormsg());
    // on récupère le nombre d'éléments à afficher
    $nb_total = odbc_num_rows ($resultat_total);
     
    // sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
    if (!isset($_GET['debut'])) $_GET['debut'] = 0;
    $nb_affichage_par_page = 100;
     
    $requete="SELECT * FROM liste WHERE (Code_Client='".$client_id."')".$code_archive.$type_archive.$description.$commentaire.$commentaire_client.$date_archivage." order by CodeArchive  LIMIT ".$_GET['debut'].",".$nb_affichage_par_page;
    //echo $requete;
    $resultat = odbc_exec($connexion_odbc,$requete) or die( odbc_errormsg());
     
    ?>
    <div class="content_form_archive"> <center>
    	<br />
    	<p align='center' style="font-size: 18px;">Recherche Par:</p>
     
    	<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
     
    		<table>
     
    			<tr>
     
    			<td><label for="type_archive"><strong>Type archive :</strong></label></td>
    			<td><select name="type_archive" class="style_input_select" size="1" id="type_archive">
    				<?php
    				if($tp_archive !=''){
    				?>
    					<option value="<?php echo $tp_archive; ?>"><?php echo $tp_archive; ?></option>
    				<?php
    				}
    				?>
    					<option value="">Tous</option>
    					<option value="DO">Dossiers</option>
    					<option value="CL">Classeurs</option>
    					<option value="BO">Bo&icirc;tes</option>
    					<option value="AU">Autre</option>
    				</select>
    			</td>
     
    			</tr>
     
    			<tr>
     
    			<td><label for="code_archive"><strong>Code archive :</strong></label></td>
    			<td><input type="text" class="style_input" name="code_archive" id="code_archive" value="<?php echo $cd_archive; ?>"/></td>
     
    			</tr>
     
    			<tr>
     
    			<td><label for="description"><strong>Description :</strong></label></td>
    			<td><input type="text"  class="style_input" name="description" id="description"/><?php echo $descript; ?></td>
     
    			</tr>
     
    			<tr>
     
    			<td><label for="commentaire"><strong>Status archive :</strong></label></td>
    			<td><input type="text" class="style_input" name="commentaire" id="commentaire"/><?php echo $comm; ?></td>
     
    			</tr>
     
    			<tr>
     
    			<td><label for="commentaire_client"><strong>Commentaire :</strong></label></td>
    			<td><input type="text" class="style_input" name="commentaire_client" id="commentaire_client" value="<?php echo $comm_client; ?>"/></td>
     
    			</tr>
     
    			<tr>
     
    			<td><label for="date_archivage"><strong>Ann&eacute;e d'archivage :</strong></label></td>
    			<td><input type="number" maxlength="4" placeholder="Ex: 2012" class="style_input" name="date_archivage" id="date_archivage" value="<?php echo $dt_archive; ?>" min="2007" max="2100"/></td>
     
    			</tr>
     
     
    		</table>
    		<input type="submit" name="register" value="Rechercher" style="color:#004A99; font-weight:bold; padding:0px 5px;" />
    		<input type="button" name="csv" value="T&eacute;l&eacute;charger" style="color:#004A99; font-weight:bold; padding:0px 5px;" onclick="<?php echo$onclick ?>" />
     
    	</form>
    </center></div>
     
    <?php
     
    include './phpexcel/Classes/PHPExcel.php';
    $objPHPExcel = new PHPExcel();
     
    // On affiche les erreurs :
    if($error == TRUE){ echo "<p align='center' style='color:red;'><br /><br />".$msg_erreur."</p>"; }
    ?>
     
     
    <?php
    if (isset($_SESSION['panier']) && count($_SESSION['panier'])>0){
    	//ajout du tableau d'archive selectionné
    	list($tt_archive, $id_CodeArticle, $nb_archive) = tableau_panier($_SESSION['panier']);
    	$count = nb_carton($connexion_odbc_stock,$id_CodeArticle);
    	?>
    	<center>
    		<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
    			<input type="submit" name="vider_articles" value="vider archives" style="color:#004A99; font-weight:bold; padding:0px 5px;" />
    		</form>
    	</center>
    	<?php
    	echo $msg_nb_carton="<br /><p align='center' style='font-size: 16px;'  >Nombre totale d'archives demand&eacute;es : ".$nb_archive."<br /> soit un total de ".$count." cartons</p>" ;
    	?>
    	<center><input type="button" name="demande" value="Commander les archives" style="color:#004A99; font-weight:bold; padding:0px 5px;" onclick = "window.location='contacte.php'" style="cursor:pointer"></center>
    	<br />
    	<?php
    } ?>
     
     
    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
    <div class="content_tableau"> 
    	<center>
    		<br />
    		<p align='center' style="font-size: 18px;">Inventaire Archives</p>
     
    			<!-- <div id='tableau_scrollbar'> -->
    				<table  id="myTable" class="tablesorter">
    				<thead> 
    					<tr>
    						<th><b>Code Archive</b></th>
    						<th><b>S&eacute;lectionner Livraison</b></th>
    						<th><b>Description</b></th>
    						<th><b>Status archive</b></th>
    						<th><b>Commentaire</b></th>
    						<th><b>Date</b></th>
    					</tr>
    				</thead> 
    			<?php	
    					$objPHPExcel->setActiveSheetIndex(0)
    						->setCellValue('A1', 'Code Archive')
    						->setCellValue('B1', 'Description')
    						->setCellValue('C1', 'Status archive')
    						->setCellValue('D1', 'Date')
    						->setCellValue('E1', 'Commentaire');
    					$row = 2;
     
    					while ($result = odbc_fetch_array($resultat)) {
     
    						//echo $result["Date"];
    						$annee = substr($result["Date"], 0, 4);
    						$mois = substr($result["Date"], 4, 2);
    						$jours = substr($result["Date"], 6, 2);
    						$date_excel = $jours."/".$mois."/".$annee;
    						$fich_csv = utf8_encode($result["CodeArchive"].";".$result["Commentaire02"].";".$result["Commentaire01"].";".$date_excel.";".$result["CommentaireClient"]);
     
    						$col = 0;
    						$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $fich_csv);
    						$row++;
     
     
    						//coche si il est dans le panier
    						if(array_key_exists($result['CodeArchive'], $_SESSION['panier'])){
    							$checked ='checked';
    						}else{$checked ='';}
     
    						//check si il est en stock ou pas
    						if(utf8_encode($result["Commentaire01"]) == utf8_encode('Restituée') || utf8_encode($result["Commentaire01"]) == utf8_encode('Archive en sortie client') || utf8_encode($result["Commentaire01"]) == utf8_encode('Archive restituée')){
    							$comm01 = "<span style='color:red;'>".utf8_encode($result["Commentaire01"])."<span>"; 
    							//gise la case si pas chez nous
    							$checked ='disabled="disabled"';
    						}else{
    							$comm01 = utf8_encode($result["Commentaire01"]);
    						}
     
    						?>
    						<tr>
    							<td><b><?php echo $result["CodeArchive"]; ?></b></td>
    							<td><b><center><input type="checkbox" name="check_archive[]" value="<?php echo $result['CodeArchive'] .'|'. utf8_encode($result["Commentaire02"]) ?>" <?php echo $checked; ?> ></center></b></td>
    							<td><b><?php echo utf8_encode($result["Commentaire02"]); ?></b></td>
    							<td><b><?php echo $comm01; ?></b></td>
    							<td><b><?php echo utf8_encode($result["CommentaireClient"]); ?></b></td>
    							<td><b><?php echo $jours."/".$mois."/".$annee; ?></b></td>
    						</tr>	
    							 <?php 
    					} ?>
    				</table>
     
    				<?php 
    				// on affiche enfin notre barre
    				echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 5).'</span>';
    				?><br /><br />
    				<input type="submit" name="check" value="Livraison" style="color:#004A99; font-weight:bold; padding:0px 5px;" />
     
    			<!-- </div> -->
     
    	</center>
    </div>
    <div id=boutton_fixe>
    	<input type="submit" name="check" value="Livraison" style="color:#004A99; font-weight:bold; padding:0px 5px; height:50px; width:100px;" />
    </div>
    </form>
     
    <?php
    $objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
    $objWriter->setUseBOM(true);
    $objWriter->setDelimiter(';');
    $objWriter->setEnclosure('');
    $objWriter->setLineEnding("\r\n");
    $objWriter->setSheetIndex(0);
    $objWriter->save("csv/".$fichier_csv);
     
    include('./includes/closedb.php');
    include('./business/tmpl_bottom.php');
    ?>

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 515
    Par défaut
    Quand tu soumet une deuxiéme page genre <<1 2 3 >>
    et tu sur que dans ton lien du genre
    mapage.php?page=2 on veut les 50 article suivant
    mais toujours de la même requéte d'origine d'identifiant de la catégorie Hifi par exemple et d'identifiant 3 par exemple
    et tu sur que tu re soumet en query pour ici la catégorie 3 du genre

    mapage.php?page=2&idCategorie=3

    quand tu resoumet une nouvelle requete a ton navigateur pour repartir vers une page vie un lien pour toi ici la pagination il faut retransmettre toujours toute les donnée sinon ca repart a zéro

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 515
    Par défaut re
    Pour toi enfaite c'est
    mapage.php?page=2&annee=2010 par exemple

  8. #8
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    458
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 458
    Par défaut
    ouai justement c'est sa le problème je repart toujour de zero et c'est con car si il y a trois page de hifi j'ai les 50 premier sur ma page 1 mais quant je mets ma page 2 j'ai tous

    en gros ce que je voudrai c'est sa :
    mapage.php?page=2&annee=2010

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 515
    Par défaut
    Ton code est trop long c embétant mais tu doit faire un truc du genre je sais pas trop comment tu fait ton lien mais il renvoye sur la même page je supose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=' '&tu le mais ici a la suite
    les 50 article que tu veut viennent tu resulat d'une requete des champ de ton formulaire c ca?

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 515
    Par défaut
    et de plus il faut que tu fasse un system du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    if(isset($_GET["offset"]){si en get la variable dans le lien du bas existe mon offset vaudrais 50 admettons pour la deuxiéme page
    $OffsetImg=$_GET["offset"]; $OffsetImg= 50
    }else{
    $OffsetImg=0; début en faite
    }
     
    $NbrImgParPage=50;
     
    // La description
    $sql = "select * from album, photo where album.id_album=photo.idAlbum
    and id_Album=".$id_album." LIMIT $OffsetImg,$NbrImgParPage";
     
    // Nombre de lignes résultant de la requête
    $TotalRows = mysql_numrows($result); donc 50
     
    $LastImgPage = $OffsetImg + $TotalRows;
     
    if ($LastImgPage < $ImgCount)
    {
    echo "<a href='mapage.php?offset=$LastImgPage&amp;id_album=$id_album&amp;nom=$nom'>
    <h4>Page suivante>></a>";
    regarde un peu ca pour t'inspirer mais il existe plus propre

    Tu utilise pas le php objet dans la vie?

  11. #11
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    458
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 458
    Par défaut
    Ok Merci,

    Donc en gros il faut que je passe mes paramètre de la requette dans ma fonction pour qu'ensuite lorsque je construit mon lien j'ajoute ces paramètres.

    bon alors je vais faire comme sa.

    pour l'objet je sais il faut que je mis mette, question d'habitude.

  12. #12
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    458
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 458
    Par défaut
    Merci à toutes les personnes qui m'ont aidé.

    Donc au final j'ai opté pour les variables de sessions et tous marche nickel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Système de pagination avec date dans l'URL.
    Par JeanJean75 dans le forum Langage
    Réponses: 5
    Dernier message: 24/01/2010, 21h00
  2. [Tableaux] créer un lien avec donnée de formulaire
    Par samy be good dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2007, 14h23
  3. [MySQL] Système de gestion avec calendrier et base de données
    Par almisuifre dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 14/12/2006, 23h08
  4. Réponses: 2
    Dernier message: 31/07/2006, 20h09
  5. [phpBB][2] Réalisation d'un système de pagination
    Par AlphonseBrown dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 26/10/2005, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo