[Résolu] Passer une variable à une redirection ?

Eléphant du PHP | 96 Messages

21 déc. 2005, 20:55

Bonjour, je n'arrive pas à passer une variable dans un cookie qui contient une redirection.
Je m'explique:
J'ai un formulaire dans ma page vente.php qui appelle un cookie et qui me permet d'afficher 7, 20, 50, 100 ventes.
Voici l'essentiel de mon code...

Dans ma page vente.php:
$nb_results_p_page = isset( $_COOKIE[ 'rowsPerPage' ] ) ? $_COOKIE[ 'rowsPerPage' ] : 7; //Par defaut affichage de 7 ventes
Le formulaire qui appelle le fichier cookie_commmercial.php

Code : Tout sélectionner

<form action="cookie_commercial.php" method="POST"> <strong>Afficher</strong> <input name="rowsPerPage" type="radio" value="7" checked="checked"> <strong>7</strong> <input name="rowsPerPage" type="radio" value="20"> <strong>20</strong> <input name="rowsPerPage" type="radio" value="50"> <strong>50</strong> <input name="rowsPerPage" type="radio" value="100"> <strong>100</strong> <input type="submit" value="Ventes" /> </form>
suite du code
$result = mysql_query("SELECT * FROM vente ORDER BY client LIMIT $start, $nb_results_p_page");
//le while
while ($vente=mysql_fetch_array($result))     	 
{


Affichage du nom du commercial au survol de la souris et sur clic affichage de toutes les ventes du commercial
<?php 		
		$com=$vente['idcommercial'];
		$req_commer=mysql_query("select * from commercial where id_commercial='$com'");
		$commer=mysql_fetch_array($req_commer);
		$lien="index.php?liste=ventes&choix=commercial&com_choisi=".$commer['id_commercial'];    
		afficher_url($lien,"<img src=\"images/com.gif\" width=\"21\" height=\"21\" border=\"0\"alt=\" Voir les ventes de ".$commer['commercial']." \">");?>
Mon fichier cookie_commercial.php ou j'aimerais récupérer l'ID du commercial $commer['id_commercial'] dans la redirection.
<?php 
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 );
?>
<html>
<head>
<title></title>
<meta http-equiv="REFRESH" content="0;url=index.php?liste=ventes&choix=commercial&com_choisi=<?php echo $commer['id_commercial'];?>">
</head>
<body>
</body>
</html>   
Si je fais :

Code : Tout sélectionner

<meta http-equiv="REFRESH" content="0;url=index.php?liste=ventes">
le formulaire et la redirection fonctionnent bien et affiche toutes les ventes de tous les commerciaux au choix par 7, 20, 50, 100 !

J'ai essayé plein de trucs mais évidemment ça ne marche pas ! :cry:
Un petit coup de main pour Noël ? merci.
Modifié en dernier par Kimble le 26 déc. 2005, 19:57, modifié 1 fois.

Eléphant du PHP | 353 Messages

21 déc. 2005, 23:01

Je ne comprends pas très bien la suite logique. Comment transite entre les pages l'id du commercial ?

Eléphant du PHP | 96 Messages

22 déc. 2005, 00:03

Comment transite entre les pages l'id du commercial ?
salut, je suis désolé mais je ne comprend pas la question...

Eléphant du PHP | 353 Messages

22 déc. 2005, 01:48

Comment passe l'id de page en page ? Par l'url ? Par un formulaire ?
Tes explications ne sont pas très claires.

Eléphant du PHP | 96 Messages

22 déc. 2005, 09:37

Par ce lien
$lien="index.php?liste=ventes&choix=commercial&com_choisi=".$commer['id_commercial'];


et affichage dans la barre d'adresse:
index.php?liste=ventes&choix=commercial&com_choisi=275
Le formulaire sert uniquement à afficher le nombre de ventes par groupe de 7, 30 etc...

Invité
Invité n'ayant pas de compte PHPfrance

22 déc. 2005, 13:25

Tu le récupères alors avec $_GET['com_choisi']

Invité
Invité n'ayant pas de compte PHPfrance

22 déc. 2005, 20:19

Tu le récupères alors avec $_GET['com_choisi']
salut,
le Get je l'ai mis dans le cookie mais ça ne marche pas :!: :?:
j'avoue que là je suis perdu...

Eléphant du PHP | 96 Messages

23 déc. 2005, 02:16

J'oubliais le principal :D :
<?php 
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 );
$commer = isset($_GET['com_choisi']) ? $_GET['com_choisi'] : '';
?>
<html>
<head>
<title></title>
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial&choix=commercial&com_choisi=<?php $commer['id_commercial']?>;">
</head>
<body>
</body>
</html>

Eléphant du PHP | 96 Messages

23 déc. 2005, 02:28

J'oubliais le principal :D :
<?php 
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 );
$commer = isset($_GET['com_choisi']) ? $_GET['com_choisi'] : '';
?>
<html>
<head>
<title></title>
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial&choix=commercial&com_choisi=<?php $commer['id_commercial']?>;">
</head>
<body>
</body>
</html>
et j'obtiens :
index.php?liste=commercial&choix=commercial&com_choisi=
dans la barre d'adresse la variable ne passe pas.

Si dans la barre d'adresse je rentre à la main :
index.php?liste=commercial&choix=commercial&com_choisi=276
je n'ai pas d'erreur et le script se déroule normalement. :?:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 déc. 2005, 02:43

et $_GET['com_choisi'] tu la récupère ? si oui pourquoi prendre $commer['id_commercial'] pour "com_choisi" dans l'url au lieu de $commer ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 96 Messages

23 déc. 2005, 19:02

bon j'avoue que je seche...cette pt1 de variable n'arrive pas ! une piste ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 déc. 2005, 19:28

tu as ce lien
$lien="index.php?liste=ventes&choix=commercial&com_choisi=".$commer['id_commercial'];
où la variable "com_choisi" est crée et peut donc être récupérée par GET

1. $commer['id_commercial'] est bien renseigné ?

2.lors du clic sur ce lien on se retrouve sur ce script:
<?php
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 );
$commer = isset($_GET['com_choisi']) ? $_GET['com_choisi'] : '';
?>
<html>
<head>
<title></title>
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial&choix=commercial&com_choisi=<?php $commer['id_commercial']?>;">
</head>
<body>
</body>
</html>
oui non ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 96 Messages

23 déc. 2005, 19:45

Je suis tout à fait d'accord avec toi sur la syntaxe mais ça ne le fait pas !
Voilà ce que j'ai dans la barre d'adresse :

Code : Tout sélectionner

index.php?liste=commercial&choix=commercial&com_choisi=[b]ICI C'EST VIDE[/b]
La variable ne monte pas !
J'ai dû louper une marche quelque part...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 déc. 2005, 19:48

La variable ne monte pas !
J'ai dû louper une marche quelque part...
d'où la question de
Comment transite entre les pages l'id du commercial ?
si tu pouvais détailler point par point le passage de la variable de page a page, où est initialisé cette variable et ou doit elle etre utilisée.

1. $commer['id_commercial'] est bien renseigné ?
et donc cette question reste ouverte.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 96 Messages

24 déc. 2005, 12:02

Me revoilà, j'ai refais quelques trucs...
Comme on dit dans la police "reprenons depuis le début"...
:D

index.php simplifié :
<?php include("connexion.php");
include("fonctions_ventes.php");
$liste=(isset($_GET['liste'])) ? $_GET['liste'] : "";
//commercial à traiter
$com=(isset($_POST['com'])) ? $_POST['com'] : "";

<li><?php afficher_url("index.php?liste=ventes","Voir toutes les ventes"); ?></li>
<?php
switch($liste) 
	{

case'commercial_ventes':
include("commercial_ventes.php");			
	break;
                }?>
cookie_commercial.php
<?php 
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 ); 
$commer = isset($_GET['com_choisi']) ? $_GET['com_choisi'] : ''; 
?> 
<html> 
<head> 
<title></title> 
<meta http-equiv="REFRESH" content="0;url=index.php?liste=commercial_ventes&choix=commercial&com_choisi=<?php $commer['com_choisi']?>;"> 
</head> 
<body> 
</body> 
</html> 

commercial_ventes.php simplifié
<?php 
$choix=(isset($_GET['choix'])) ? $_GET['choix'] : "";
$com_choisi=(isset($_GET['com_choisi'])) ? $_GET['com_choisi'] : "";

//les donnees pour le cookie et la barre de navigation

$query = mysql_query( "SELECT idcommercial FROM vente, commercial WHERE id_commercial LIKE '$com_choisi'" ); //query the table
$numrows = mysql_num_rows( $query ); //how many rows will be fetched?
$nb_results_p_page = isset( $_COOKIE[ 'rowsPerPage' ] ) ? $_COOKIE[ 'rowsPerPage' ] : 7; //Par defaut affichage de 7 ventes
if( $numrows > $nb_results_p_page ) //do we need to break output into pages?
{
$page = isset( $_GET[ 'page' ] ) ? $_GET[ 'page' ] : 0; //load specified page number (set to 1 if not specified)
if( $numrows % $nb_results_p_page )
$maxpage = floor( $numrows / $nb_results_p_page ) +1;
else
$maxpage = $numrows / $nb_results_p_page; //get maximum page number
if( $page > $maxpage ) $page = 1; //if out of range, set to deafult (page 1)
$limit = " LIMIT " . ( ( $page - 1 ) * $nb_results_p_page ) . "," . $nb_results_p_page; //make LIMIT offset,rowcount string
$query = mysql_query( "SELECT * FROM vente ORDER BY client $limit" ); //and set query to include the LIMIT string
} 
		 
 //$nb_results_p_page = 7; // nombre de résultats par page que j'ai mis en silence
$nb_avant = 2; // nombre de page avant la page courante 
$nb_apres = 2; // nombre de page après la page courante 
$premiere = 1; // aficher le lien "première page" (1 ou 0) 
$derniere = 1; // afficher le lien "dernière page" (1 ou 0) 
$courant = empty($_GET['page']) ? 1 : $_GET['page']; // page 
$start = ($courant - 1) * $nb_results_p_page; // start (requete mysql) 
// comptage du nombre de lignes de la table
$query = mysql_query("SELECT COUNT(idcommercial) FROM vente WHERE idcommercial LIKE '$com_choisi'"); 
if(!$query) 
{ 
   // redirection erreur 
header("location: erreur.php"); 
exit; 
} 
$ret = mysql_fetch_array($query); 
// nombre de lignes 
$nb_results = $ret[0];
$result = mysql_query ("select * from vente where idcommercial LIKE '$com_choisi' ORDER BY client asc LIMIT $start, $nb_results_p_page");?>

<?php //le formulaire qui appelle le cookie ?>
<form action="cookie_commercial.php"  method="POST">
		  <strong>Afficher</strong> 
<input name="rowsPerPage" type="radio" value="7" checked="checked"> <strong>7</strong>
<input name="rowsPerPage" type="radio" value="20"> <strong>20</strong>
<input name="rowsPerPage" type="radio"  value="50"> <strong>50</strong>
<input name="rowsPerPage" type="radio"  value="100"> <strong>100&nbsp;</strong>
<input type="submit" class='bouton' value="Ventes" />
</form>	

<?php //l'entete du tableau?>
<table width="100%" border="0" align="center" cellpadding="2" cellspacing="2">
<tr>
<td align="center" bgcolor="#FFCC66"><span class="Style3">Co.</span></td>

<?php //Le while
while ($vente=mysql_fetch_array($result))     	 
{ 
//affichage des donnees
<?php 		
$com=$vente['idcommercial'];
$req_commer=mysql_query("select * from commercial where id_commercial='$com'");
$commer=mysql_fetch_array($req_commer);
$lien="index.php?liste=commercial_ventes&choix=commercial&com_choisi=".$commer['id_commercial'];    
afficher_url($lien,"<img src=\"images/com.gif\" width=\"21\" height=\"21\" border=\"0\"alt=\" Voir les ventes de ".$commer['commercial']." \">");?>  	
		</span></td>
La suite c'est la fin de la barre de navigation.
J'espére que je n'ai rien oublié.