Petit probléme sur appel d'un cookie.

cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005 - 8 déc. 2005 à 11:34
cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005 - 15 déc. 2005 à 18:21
Bonjour,
J'ai une liste déroulante qui appelle un cookie et qui permet à l'utilisateur de choisir l'affichage du tableau sur 7 , 20, 30, 70 lignes...

<?php
$nb_results_p_page = isset( $_COOKIE[ 'rowsPerPage' ] ) ? $_COOKIE[ 'rowsPerPage' ] : 7; //Par defaut affichage de 7 ventes
?>

voici la liste déroulante :
<form action="cookie.php" method="POST">
<select name="rowsPerPage">
<option value="7" selected <?php if( $_COOKIE[ 'rowsPerPage' ] == 7 ) echo "selected="selected""; ?> >Afficher par 7 ventes</option>
<option value="20" <?php if( !$_COOKIE[ 'rowsPerPage' ] || $_COOKIE[ 'rowsPerPage' ] == 20 ) echo "selected="selected""; ?> >Afficher par 20 ventes</option>
<option value="30">Afficher par 30 ventes</option>
<option value="70">Afficher par 70 ventes</option>
</select>

</form>

Plutôt que d'afficher cette liste déroulante, j'aimerais que le choix de l'affichage se fasse par un clic sur 7,20,30,70 ventes de type :
Afficher par 7| 20| 30| 70 ventes
J'ai essayé plusieurs choses mais je n'arrive pas à trouver la syntaxe...
Une piste ? merci.

11 réponses

cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005
10 déc. 2005 à 14:08
Personne ne sait ? snif !!
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
10 déc. 2005 à 15:30
Bah, avec un $_GET et les transmissions de variables via URL !

[cookie.php?view=7 7]|20
etc...

Et pour le code PHP

<?php
if ( isset($_GET['view']) && is_int($_GET['view']) ) {
$nb_results_p_page = $_GET['view'];
}
?>

C'est tout simple !
0
cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005
11 déc. 2005 à 13:24
Grand merci et bonne journée...
0
cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005
11 déc. 2005 à 14:20
Au fait pourquoi "view" ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005
11 déc. 2005 à 18:04
Bon, je viens de m'y remettre et j'ai l'erreur suivante :
Warning: Cannot modify header information - headers already sent by (output started at....
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
11 déc. 2005 à 18:40
"Au fait pourquoi "view" ??" Parce qu'il fallait que je trouve un nom de variable c'est tout. T'as qu'à changer si tu préfères :)

"Bon, je viens de m'y remettre et j'ai l'erreur suivante :
Warning: Cannot modify header information - headers already sent by (output started at...." Voir tutos sur :
Comment bien gérer les en-têtes !!!!
0
cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005
11 déc. 2005 à 19:00
Et pourquoi cette erreur ne se produit pas avec la liste déroulante ?
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
11 déc. 2005 à 19:03
Pardon ?

un problème d'header() signifie que tu utilises header(), ou setcookie() ou quelque chose d'autres qui utilise les en-têtes html APRES avoir sorti du code HTMl (via echo par exemple).

Hors, il n'y a rien de tout ca sur le bout de code que tu as marqué.

Si tu as cette erreur avec le code que je t'ai fourni, c'est que y'a un problème ailleurs. Relis ton code et si tu trouves pas, envoi un autre morceau.
0
cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005
11 déc. 2005 à 19:22
Voici le code :

le début de ma page...

?php
include("connexion.php");
//$choix défini si les ventes doivent être affichées par origine, commercial, ... ou tous.
$choix=(isset($_GET['choix'])) ? $_GET['choix'] : "";
//ces 6 variables permettent de savoir quelles ventes afficher en fonction de l'origine, le commercial,la catégorie, la commune choisi
$formulaire_r=(isset($_POST['formulaire_r'])) ? $_POST['formulaire_r'] : "";
$recherche=(isset($_GET['recherche'])) ? $_GET['recherche'] : "";
$ori_choisi=(isset($_GET['ori_choisi'])) ? $_GET['ori_choisi'] : "";
$com_choisi=(isset($_GET['com_choisi'])) ? $_GET['com_choisi'] : "";
$cat_choisi=(isset($_GET['cat_choisi'])) ? $_GET['cat_choisi'] : "";
$ville_choisi=(isset($_GET['ville_choisi'])) ? $_GET['ville_choisi'] : "";
$cli=(isset($_GET['cli'])) ? $_GET['cli'] : "";
//affichage du choix de l'affichage du nombre de ventes (7,30,70)
$query = mysql_query( "SELECT * FROM vente" ); //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 defaut que j'ai mis en silence
$nb_avant = 6; // nombre de page avant la page courante
$nb_apres = 6; // 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 base
$resultat = mysql_query("SELECT count(*) FROM vente");
if(!$resultat)
{
// redirection si erreur
header("location: erreur.php");
exit;
}
$ret = mysql_fetch_array($resultat);
// nombre de lignes
$nb_results = $ret[0];

switch($choix)
blabla
blabla

//affichage du formulaire qui envoie le cookie

<form action="cookie.php" method="POST">
<select name="rowsPerPage">
<option value="7" selected <?php if( $_COOKIE[ 'rowsPerPage' ] == 7 ) echo "selected="selected""; ?> >Afficher par 7 ventes</option>
<option value="20" <?php if( !$_COOKIE[ 'rowsPerPage' ] || $_COOKIE[ 'rowsPerPage' ] == 20 ) echo "selected="selected""; ?> >Afficher par 20 ventes</option>
<option value="30">Afficher par 30 ventes</option>
<option value="70">Afficher par 70 ventes</option>
</select>

</form>

je n'ai aucune erreur avec la boite déroulante.

Et voici mon cookie :
<?php
setcookie( 'rowsPerPage', $_POST[ 'rowsPerPage' ], time()+999999 );
?>
<html>
<head>
<title></title>
<meta http-equiv="REFRESH" content="0;url=index.php?liste=ventes">
</head>

</html>
0
cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005
15 déc. 2005 à 16:26
FhX, je n'arrive pas à trouver le probléme...Toujours le même message d'erreur
Warning: Cannot modify header information - headers already sent by (output started at....Ce que je ne comprend pas c'est que mon cookie est dans un fichier séparé et il n'y aucune ligne avant setcookie
0
cs_bonobos Messages postés 34 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 15 décembre 2005
15 déc. 2005 à 18:21
ha oui, j'ai fait ceci:

<form action="cookie.php" method="POST">
Afficher
7
20
50
100

</form>
et là non plus pas de probléme ! a n'y rien comprendre !
0
Rejoignez-nous