Page 1 sur 3

Acquisition des résultats d'un formulaire dans la pagination

Posté : 12 juil. 2005, 19:06
par shi
Bonjour,

j'essaie de créer un dico en ligne et j'ai la base :

Le formulaire où l'on écrit son mot, on envoie et on affiche le résultat via la requête qui cherche dans la base.
Jusqu'ici tout va bien :)

J'ai voulu faire une pagination et j'ai réussi à l'aide d'un des forums ici à avoir :

lance la requête, limite le résultat voulu, affiche le bouton suivant !
Jusqu'ici tout va bien :)

Là où ça ne va plus :

Si je clique sur suivant, les boutons suivants/précédents ne s'affichent pas, pas plus que les résultats... :?
J'ai : base.php?page=1 dans la barre de navigation mais il n'a pas pris en compte le mot recherché...
Je ne vois pas comment faire ! Je crois qu'il me manque l'acquisition du mot cherché quelque part...

Voilà le code de base (sans la mise en page, etc) :

Code : Tout sélectionner

// définit l'affichage pour les caractères spéciaux <?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <meta http-equiv="content-type" content="text/html" charset="UTF-8" /> <head> //inclu la connextion mysql et la fonction colorant le mot cherché <?php include( "mysql.inc.php" ); require( "fonctions.inc.php" ); //vérifie qu'il y a bien un mot cherché if( isset( $_POST["recherche"] ) ) $recherche = $_POST["recherche"]; else $recherche = 0; if( isset( $_POST["critere"] ) ) $critere = $_POST["critere"]; ?> </head> // formulaire dans lequel on tape le mot cherché <body> <form name="annuaire" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <input type="text" name="critere" value="Votre recherche ici. <?php if(!$critere) echo stripslashes( $critere ); ?>" size="17" onFocus='document.forms["annuaire"].elements["critere"].value =""'/> <input type="submit" name="envoyer" value="Traduire"/><input type="hidden" name="recherche" value="1"/></form> </body> // si le mot existe on effectue une première recherche totale et avec limite <?Php if( $recherche==1 && !empty( $critere) ) { $requete = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%'"; $execution = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" ); $total = @mysql_num_rows( $execution ) ; $na = 5; if( $total> 0 ) { $nb_pages = ceil($total/$na); $page = isset($_GET['page']) ? $_GET['page'] : 0; $depart = $page * $na; $requete2 = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%' limit ".$depart.",".$na; $execution2 = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" ); $totallimite = @mysql_num_rows( $execution2 ) ; ?> R&eacute;sultat : <?php echo $total; ?><br /> Mot recherch&eacute; :<?php echo colorise_query($critere,$critere,$critere); ?><br /> <?php while( $un_mot = mysql_fetch_array( $execution2 )) { ?> <?php echo colorise_query( $un_mot["fr"], $critere,"stabylo" ); ?><br /> <?php echo $un_mot["jap"] . " " . $un_mot["pro"]; ?><br /> <?php echo $un_mot["com"]; ?><br /> <?php } mysql_free_result( $execution2 ); } // si rien dans 1ere recherche, cherche dans l'autre requete else { $requete = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%'"; $execution = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" ); $total = @mysql_num_rows( $execution ); $na = 5; if( $total > 0 ) { $nb_pages = ceil($total/$na); $page = isset($_GET['page']) ? $_GET['page'] : 0; $depart = $page * $na; $requete2 = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%' limit ".$depart.",".$na; $execution2 = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" ); $totallimite = @mysql_num_rows( $execution2 ) ; ?> <br /> R&eacute;sultat : <?php echo $total; ?><br /> Mot recherch&eacute; : <?php echo colorise_query( $critere,$critere,$critere ); ?><br /> <?php while( $un_mot = mysql_fetch_array( $execution2 ) ) { ?> <?php echo colorise_query( $un_mot["jap"],$critere,"stabylo" );?> <?php echo $un_mot["fr"]; ?> <?php echo $un_mot["com"]; ?><br /> <?php } mysql_free_result( $execution2 ); } // si la deuxieme requete donne rien, pas de resultat else echo "Aucune traduction disponible pour le moment.<br />\n"; } // liens precedents et suivants if($page > 0) { ?> <a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page - 1))?>">Page précédente</a> <?php } if($page < $nb_pages) { ?> <a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page + 1))?>">Page suivante</a> <?php } } ?> </body> </html> <?Php mysql_close(); ?>

Posté : 12 juil. 2005, 20:03
par Cyrano
Forcément, tu ne définis jamais la variable $page en la récupérant. Dans les premières lignes de code,ajoutes ceci:
$page = isset($_GET['page']) ? $_GET['page'] : 0;
En clair, soit le paramètre page existe dans l'url et tu en attribue la valeur à $page, soit il n'est pas là et tu définis $page à 0.

Posté : 12 juil. 2005, 20:14
par shi
Merci Cyrano, je vais essayer tout de suite !

Mais je sais que je l'avais mis mais que cela me marquait une erreur SQL... Bon je reessaie toute de suite !

Posté : 12 juil. 2005, 20:16
par shi
ah mais si elle y est ! Mais j'ai dû la mettre après la conditionnelle pour ne pas avoir de message d'erreur SQL...

Posté : 12 juil. 2005, 20:28
par Cyrano
Quel message d'erreur ?

Posté : 12 juil. 2005, 20:41
par shi
Non, c'est bon du côté erreur SQL !
j'ai fait un peu plus propre niveau du code (les éléments plus dans la logique du script lol).

Je n'ai strictement aucune erreur tant que je détermine bien

Code : Tout sélectionner

$nb_pages = ceil($total/$na); $depart = $page * $na;
après la requête et pas avant.

Je n'ai qu'une erreur SQL dans le script actuel (ci-dessous après) :
Lorsque je tape un mot qui n'est pas dans la table, apparaît ça :

Undefined variable: nb_pages in c:\program files\easyphp1-7\www\test\base2.php on line 91

Mais sinon lorsque je tape un mot, il affiche bien le résultat dans la limite fixée (s'il y a 10 résultats, n'affiche que 5) avec le bouton suivant mais dès que je clique suivant : je n'ai pas la suite des résultats et je n'ai pas les liens suivants/précédents.
En revanche, s'il n'y a que 3 résultats, il m'affiche quand même le bouton suivant...

Voilà le code actuel, plus dans l'ordre

Code : Tout sélectionner

<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <meta http-equiv="content-type" content="text/html" charset="UTF-8" /> <head> <?php include( "mysql.inc.php" ); require( "fonctions.inc.php" ); $page = isset($_GET['page']) ? $_GET['page'] : 0; ?> </head> <body> <form name="annuaire" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <input type="text" name="critere" value="Votre recherche ici. <?php if(!$critere) echo stripslashes( $critere ); ?>" size="17" onFocus='document.forms["annuaire"].elements["critere"].value =""'/> <input type="submit" name="envoyer" value="Traduire"/><input type="hidden" name="recherche" value="1"/></form> </body> <?Php if( isset( $_POST["recherche"] ) ) $recherche = $_POST["recherche"]; else $recherche = 0; if( isset( $_POST["critere"] ) ) $critere = $_POST["critere"]; if( $recherche==1 && !empty( $critere) ) { $requete = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%'"; $execution = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" ); $total = @mysql_num_rows( $execution ) ; $na = 5; if( $total> 0 ) { $nb_pages = ceil($total/$na); $depart = $page * $na; $requete2 = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%' limit ".$depart.",".$na; $execution2 = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" ); $totallimite = @mysql_num_rows( $execution2 ) ; ?> R&eacute;sultat :<?php echo $total; ?> Mot recherch&eacute; :<?php echo colorise_query( $critere,$critere,$critere); ?> <br /> <?php while( $un_mot = mysql_fetch_array( $execution2 )) { ?> <?php echo colorise_query( $un_mot["fr"], $critere,"stabylo" ); ?> <?php echo $un_mot["jap"] . " " . $un_mot["pro"]; ?><br /> <p class="style5"><?php echo $un_mot["com"]; ?><br /> <?php } mysql_free_result( $execution2 ); } else { $requete = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%'"; $execution = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" ); $total = @mysql_num_rows( $execution ); $na = 5; if( $total > 0 ) { $nb_pages = ceil($total/$na); $depart = $page * $na; $requete2 = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%' limit ".$depart.",".$na; $execution2 = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" ); $totallimite = @mysql_num_rows( $execution2 ) ; ?> R&eacute;sultat : <?php echo $total; ?><br /> Mot recherch&eacute; : <?php echo colorise_query( $critere,$critere,$critere ); ?> <br /> <?php while( $un_mot = mysql_fetch_array( $execution2 ) ) { ?> <?php echo colorise_query( $un_mot["jap"],$critere,"stabylo" );?> <?php echo $un_mot["fr"]; ?><br /> <?php echo $un_mot["com"]; ?><br /> <?php } mysql_free_result( $execution2 ); } else echo "Aucune traduction disponible pour le moment.<br />\n"; } if($page > 0) { ?> <a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page - 1))?>">Page précédente</a> <?php } if($page < $nb_pages) { ?> <a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page + 1))?>">Page suivante</a> <?php } } ?> </body> </html> <?Php mysql_close(); ?>

Posté : 12 juil. 2005, 20:52
par Cyrano
j'ai peut-être trouvé une erreur : $na est défini dans un if et pas dans le else qui suit, mais il est appelé dans le else en question, ça génère forcément une erreur: essaye comme ça:
<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<meta http-equiv="content-type" content="text/html" charset="UTF-8" />
<head>
<?php
include( "mysql.inc.php" );
require( "fonctions.inc.php" );
$page = isset($_GET['page']) ? $_GET['page'] : 0;
$na = 5; // <== Variable paramètre déplacée en début de fichier, elle peut servir dans plusieurs endroits.
?>
</head>
<body>
<form name="annuaire" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="text"   name="critere"   value="Votre recherche ici.     <?php if(!$critere) echo stripslashes( $critere ); ?>" size="17" onFocus='document.forms["annuaire"].elements["critere"].value =""'/>
<input type="submit" name="envoyer" value="Traduire"/><input type="hidden" name="recherche" value="1"/></form>
</body>
<?Php
if( isset( $_POST["recherche"] ) )
{
    $recherche = $_POST["recherche"];
}
else
{
    $recherche = 0;
}
if( isset( $_POST["critere"] ) )
{
    $critere   = $_POST["critere"];
}
if( $recherche==1 && !empty( $critere) )
{
    $requete    = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%'";
    $execution  = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" );
    $total = @mysql_num_rows( $execution ) ;
    if( $total> 0 )
    {
        $nb_pages = ceil($total/$na);
        $depart = $page * $na;
        $requete2    = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%' limit ".$depart.",".$na;
        $execution2  = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" );
        $totallimite = @mysql_num_rows( $execution2 ) ;
?>
R&eacute;sultat :<?php echo $total; ?>
Mot recherch&eacute; :<?php echo colorise_query( $critere,$critere,$critere); ?>
<br />
        <?php
        while( $un_mot = mysql_fetch_array( $execution2 ))
        {
?>
<?php echo colorise_query( $un_mot["fr"], $critere,"stabylo" ); ?>
<?php echo $un_mot["jap"] . " " . $un_mot["pro"]; ?><br />
<p class="style5"><?php echo $un_mot["com"]; ?><br />
<?php
        }
        mysql_free_result( $execution2 );
    }
    else
    {
        $requete    = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%'";
        $execution  = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" );
        $total = @mysql_num_rows( $execution );
        $na = 5;
        if( $total > 0 )
        {
            $nb_pages = ceil($total/$na);
            $depart = $page * $na;
            $requete2    = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%' limit ".$depart.",".$na;
            $execution2  = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" );
            $totallimite = @mysql_num_rows( $execution2 ) ;
?>
R&eacute;sultat : <?php echo $total; ?><br />
Mot recherch&eacute; : <?php echo colorise_query( $critere,$critere,$critere ); ?>
<br />
            <?php
            while( $un_mot = mysql_fetch_array( $execution2 ) )
            {
?>
<?php echo colorise_query( $un_mot["jap"],$critere,"stabylo" );?>
<?php echo $un_mot["fr"]; ?><br />
<?php echo $un_mot["com"]; ?><br />
<?php 
            }
            mysql_free_result( $execution2 );
        }
        else
        echo "Aucune traduction disponible pour le moment.<br />\n";
    }
    if($page > 0)
    {
?>
<a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page - 1))?>">Page précédente</a>
<?php
    }
    if($page < $nb_pages)
    {
?>
<a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page + 1))?>">Page suivante</a>
<?php
    }
}
?>
</body>
</html>
<?Php
mysql_close();
?> 

Posté : 12 juil. 2005, 21:01
par shi
Merci Cyrano,

C'est déjà un peu plus propre comme ça !

Cependant les problèmes suivants perdurent :

- Si tape mot non dans la base :

Aucune traduction disponible pour le moment.
Undefined variable: nb_pages in c:\program files\easyphp1-7\www\test\base2.php on line 99

- Si tape mot dont le resultat < $na :

Bouton suivant s'affiche

- Si tape mot dont le resultat > $na :

Résultat s'affiche dans la valeur de $na avec le bouton suivant mais dès qu'on clique = pas de liens/pas de résultats et :

http://127.0.0.1/test/base2.php?page=1

(manque le critere ?)

J'ai l'impression qu'il manque un lien entre le formulaire, $page et les liens ?

Posté : 12 juil. 2005, 21:12
par Cyrano
Mouais, bon, je suis pas sur de mon coup à cause des numéros de lignes qui n'ont pas l'air de correspondre, mais voilà après simplification et correction de quelques lignes.
<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<meta http-equiv="content-type" content="text/html" charset="UTF-8" />
<head>
<?php
include( "mysql.inc.php" );
require( "fonctions.inc.php" );
?>
</head>
<body>
<form name="annuaire" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="text"   name="critere"   value="Votre recherche ici.     <?php if(!$critere) echo stripslashes( $critere ); ?>" size="17" onFocus='document.forms["annuaire"].elements["critere"].value =""'/>
<input type="submit" name="envoyer" value="Traduire"/><input type="hidden" name="recherche" value="1"/></form>
</body>
<?php
$page = isset($_GET['page']) ? $_GET['page'] : 0;
$na = 5;
$recherche = isset($_POST["recherche"]) ? $_POST["recherche"] : 0;
$critere   = isset($_POST["critere"]) ? $_POST["critere"] : null;

if($recherche == 1 && $critere != null)
{
    $requete    = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%'";
    $execution  = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" );
    $total = @mysql_num_rows( $execution ) ;
    if( $total > 0 )
    {
        $nb_pages = ceil($total/$na);
        $depart = $page * $na;
        $requete2    = "SELECT * FROM japfr WHERE fr LIKE '%" . stripslashes( $critere ) . "%' limit ".$depart.",".$na;
        $execution2  = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" );
        $totallimite = @mysql_num_rows( $execution2 ) ;
?>
R&eacute;sultat :<?php echo $total; ?>
Mot recherch&eacute; :<?php echo colorise_query( $critere,$critere,$critere); ?>
<br />
        <?php
        while( $un_mot = mysql_fetch_array( $execution2 ))
        {
?>
<?php echo colorise_query( $un_mot["fr"], $critere,"stabylo" ); ?>
<?php echo $un_mot["jap"] . " " . $un_mot["pro"]; ?><br />
<p class="style5"><?php echo $un_mot["com"]; ?><br />
<?php
        }
        mysql_free_result( $execution2 );
    }
    else
    {
        $requete    = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%'";
        $execution  = mysql_query( $requete, $connection ) OR die( "Impossible d'executer la Requete !" );
        $total = @mysql_num_rows( $execution );
        $na = 5;
        if( $total > 0 )
        {
            $nb_pages = ceil($total/$na);
            $depart = $page * $na;
            $requete2    = "SELECT * FROM japfr WHERE jap LIKE '%" . stripslashes( $critere ) . "%' OR pro LIKE '%". stripslashes( $critere ) . "%' limit ".$depart.",".$na;
            $execution2  = mysql_query( $requete2, $connection ) OR die( "Impossible d'executer la Requete !" );
            $totallimite = @mysql_num_rows( $execution2 ) ;
?>
R&eacute;sultat : <?php echo $total; ?><br />
Mot recherch&eacute; : <?php echo colorise_query( $critere,$critere,$critere ); ?>
<br />
            <?php
            while( $un_mot = mysql_fetch_array( $execution2 ) )
            {
?>
<?php echo colorise_query( $un_mot["jap"],$critere,"stabylo" );?>
<?php echo $un_mot["fr"]; ?><br />
<?php echo $un_mot["com"]; ?><br />
<?php 
            }
            mysql_free_result( $execution2 );
        }
        else
        echo "Aucune traduction disponible pour le moment.<br />\n";
    }
    if(isset($nb_pages) && $nb_pages > 0 && $page > 0)
    {
?>
<a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page - 1))?>">Page précédente</a>
<?php
    }
    if(isset($nb_pages) && $page < $nb_pages)
    {
?>
<a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page + 1))?>">Page suivante</a>
<?php
    }
}
?>
</body>
</html>
<?Php
mysql_close();
?> 

Posté : 12 juil. 2005, 21:23
par shi
YES ! Ca avance ! :D
Merci Cyrano!
(ca me fait un peu cette impression de voir des musiciens qui lisent une partoche et jouent en même temps le fait de voir des gens écrire du code comme ça!)

Enfin alors, un problème en moins !!

Si on tape un mot qui n'est pas dans la base, pas d'erreur SQL ! il affiche tranquillement ce qu'il doit afficher ! 8)

en revanche reste les deux autres problèmes =

Si tape mot dont le resultat < $na :

Bouton suivant s'affiche

- Si tape mot dont le resultat > $na :

Résultat s'affiche dans la valeur de $na avec le bouton suivant mais dès qu'on clique = pas de liens/pas de résultats et :

http://127.0.0.1/test/base2.php?page=1

(manque le critere ?)

Est-ce que j'oublie pas de récupérer le mot cherché quelque part ?

Posté : 12 juil. 2005, 21:34
par Cyrano
Ok, on va essayer d'ajouter les détails manquants: au début du code, lors de la définition de $critere, corrige comme ceci:
$critere   = (isset($_POST["critere"]) && !isset($_GET['crit'])) ? $_POST["critere"] : null;
if($critere == null)
{
    $critere   = isset($_GET["crit"]) ? $_GET["crit"] : null;
}
Ensuite pour la génération des liens pages suivantes et précédentes, corriges comme ceci:
    if(isset($nb_pages) && $nb_pages > 0 && $page > 0)
    {
?>
<a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page - 1))?>&crit=<?php echo($critere); ?>">Page précédente</a>
<?php
    }
    if(isset($nb_pages) && $page < $nb_pages)
    {
?>
<a href="<?php echo($_SERVER['PHP_SELF']."?page=". ($page + 1))?>&crit=<?php echo($critere); ?>">Page suivante</a>
<?php
    }
Là, ça te permet de garder en circulation la variable critère: lors de la première ouverture, elle arrivait du formulaire en POST, mais pour aller à la seconde page, si tu ne la transmets pas, tu perds le contenu de POST, donc on la récupère et on la passe avec l'url en GET. Donc la première modification permet de choisir selon ce qui existe: on vérifie d'abord POST et sur tout aussi qu'il n'y a pas de GET (pour ne pas l'écraser) et on attribue une valeur ou NULL. Si c'est NULL, on vérifie la variable GET.

Ensuite, pour le sliens, ben... regarde donc, tu verras par toi même, c'est pas terriblement complexe.

Posté : 12 juil. 2005, 21:44
par shi
ARGHH !

J'avais des petites étincelles dans les yeux ! J'avais tenté la même chose mais sans succès mais codé correctement...

alors le résultat ne change pas, les problèmes sont les mêmes !

Il y a amélioration ceci-dit !

http://127.0.0.1/test/base2.php?page=1&crit=a

Il prend bien en compte le critère ! alors là, moi je pensais que ça venait de ce manque mais là, 3 jours que je suis dessus (bon en 5min, ça avance plus que moi en un dimanche lol) et ça marche pô...

Là je vois vraiment pas où peut-être le problème ! ](*,)

Posté : 12 juil. 2005, 21:46
par shi
Peut-être $_request ??

Posté : 12 juil. 2005, 21:47
par Cyrano
Ben partant de là, si tu n'as plus de message d'erreur, ça doit se passer au niveau des requêtes SQL. Fais les afficher pour en vérifier la syntaxe et au besoin teste les dans phpMyAdmin.

Posté : 12 juil. 2005, 22:02
par shi
JE CROIS QUE J'AI TROUVE !

le formulaire :

<form name="annuaire" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<input type="text" name="critere" value="Votre recherche ici. <?php if(!$critere) echo stripslashes( $critere ); ?>" size="17" onFocus='document.forms["annuaire"].elements["critere"].value =""'/>
<input type="submit" name="envoyer" value="Traduire"/><input type="hidden" name="recherche" value="0"/></form>

La value est fixée à 0 et ensuite :

if($recherche == 0 && $critere != null)


Si je fixe la valeur à 1 ?