Modérateur PHPfrance |
2575 Messages
25 mars 2013, 10:07
Ok, j'ai compris.
1. Pour éviter l'erreur de redirection sur la page d'accueil c'est simple : il faut satisfaire l'URL qui exige le champ CONTENU, et pour ce faire, il faut ajouter un champ caché nommé "CONTENU" dans le form
<form><input type="hidden" name="CONTENU" value="catalogue"/><select name="pages" onchange="this.form.submit()">
pour envoyer la valeur 'catalogue' dans l'URL avec le champ pages qui est transmis par la liste.
2. Pour veiller à ce que la requête soit toujours correcte (et surtout au premier chargement de la page) il faut que la variable $num_enreg soit mise à zéro quand la variable $pages n'a pas de valeur ou est <= à zéro. Et pour en être sûr il faut écrire une affectation conditionnelle comme ça :
$num_enreg = isset($pages) && $pages>0 ? ($pages-1)*30 : 0;
Ou bien, il faut que $pages soit initialisée à 1 par défaut.
$pages = isset($_GET['pages']) ? $_GET['pages'] : 1;
Dans tous les cas, voici le corrigé général :
$pages = isset($_GET['pages']) ? $_GET['pages'] : 1;
//affichage de la liste avec rappel de l’élément sélectionné
echo"Aller à la page:";
//liste déroulante
$selected = '';
echo '<form><input type="hidden" name="CONTENU" value="catalogue"/><select name="pages" onchange="this.form.submit()">',"\n";
for($i=1; $i<=25; $i++)
{
$selected = ($pages==$i) ? " selected " : "";
echo "\t",'<option value="', $i ,'"', $selected ,'>', $i ,'</option>',"\n";
}
echo '</select></form>',"\n";
//num enreg debut page
$num_enreg = isset($pages) && $pages>0 ? ($pages - 1) * 30 : 0;
echo '[...]';
$requete1="SELECT *
FROM `etoile`
LIMIT ".$num_enreg.",30";
$resultat1=mysql_query($requete1)
or die ("la requete ne peut pas être executee");
while($ligne=mysql_fetch_array ($resultat1))
{
extract($ligne);
echo "[...tableau...]";
}
--------
//////----
//---
//----
//////
-------
//---
//----
//---
//----
//---
//
------
//////----
//////-----
//////
-----
||--------
||--
||---
||
Prendre le recul n'est pas une perte de temps.
ps:
Affrontez moi dans l'arène