Bonjour à tous,

Comme indique le titre, je fais un script pour afficher des résultats page par page. J'ai choisis d'utiliser des boutons de formulaire pour naviguer entre ces pages (précédent, n°,suivant).

Premier probleme rencontré : les boutons etant dans des formulaires idépendants, ils s'affichent tous les uns sous les autres....pas terrible

Je modifie donc le code et place tous les boutons dans le meme formulaire..et la ,c'est la tuile.
En effet je passe en hidden la valeur de limite (pour la requête) donc je recupère à chaque fois la valeur du dernier hidden....

Bon ,j'arrete de romancer et je montre mon code

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
<?
//declaration des fonctions
 
function lienprec($limite,$nb,$page) {
$limiteprecedente = $limite - $nb;
if ($limite != 0) {
    //echo '<form action="'.$page.'" method="post">';
    echo '<input name="go" type="submit" value="< Précédent">';
    echo '<input type="hidden" value="'.$limiteprecedente.'" name="limite">';
    //echo '</form>';
                  }
}
 
function liensuivant ($limite,$nb,$total,$page) {
$limitesuivante = $limite + $nb;
if ($total > $limitesuivante) {
    //echo '<form action="'.$page.'" method="post">';
    echo '<input name="go" type="submit" value="Suivant >">';
    echo '<input type="hidden" value="'.$limitesuivante.'" name="limite">';
    //echo '</form>';
	                          }
	}
 
function liennumpage ($nb,$total,$page) {
$bouton = ceil ($total/$nb);
$i = 1;
$limite = 0;
while ($i <= $bouton) {
    //echo '<form action="'.$page.'" method="post">';
    echo '<input name="go" type="submit" value="'.$i.'">';
    echo '<input type="hidden" value="'.$limite.'" name="limite">';
    //echo '</form>';
$i = $i+1;
$limite = $limite + $nb;
}
}
 
//ouverture de la base
include("_connexion.php");
 
//si formulaire prec ou suivant à été soumis
if (isset($_POST['limite'])) {
$limite = $_POST['limite'];
}
 
if (!isset($limite)) $limite = 0;
//requete sans limite
$sql = 'SELECT titre FROM messages';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nb = mysql_num_rows($req);
 
//nb de résultats
$total = $nb;
 
//nbre affichage
$nb_aff = 3;
 
//requete avec limite
 
$aql = 'SELECT titre FROM messages limit '.$limite.','.$nb_aff;
$areq = mysql_query($aql) or die('Erreur SQL !<br />'.$aql.'<br />'.mysql_error());
 
//affichage des résultats
 
while ($data = mysql_fetch_array($areq)){
echo $data['titre'].'<br />';
}
 
// affichage des liens
?>
<form action="test.php" method="post">
<?
$prec = lienprec($limite,$nb_aff,"test.php");
$numero = liennumpage ($nb_aff,$total,"test.php");
$suiv = liensuivant ($limite,$nb_aff,$total,"test.php");
?>
</form>
<?
//fermeture
mysql_free_result($req);
mysql_free_result($areq);
mysql_close();
?>
Ca ,c'est donc le code avec les boutons ds le meme formulaire....

...je vois pas de solution et je ne peux pas utiliser des liens type texte

Si vous avez une piste à me donner pour me sortir de la....je vous en remercie.

P.S: dommage qu'on me puisse pas mettre de couleur au code...ca faciliterait la lecture.