Plusieurs directions depuis un mm formulaire

Fermé
pixel - 13 janv. 2008 à 09:26
 pixel - 14 janv. 2008 à 19:39
Bonjour,

J'ai un petit formulaire moteur de recherche, qui est redigé à l'interieur d'un <form method='post' action=' '>

Il y a donc un input type = 'submit' , mais je ne parviens pas a trouver de solution pour placer deux input type='submit' qui n'ont pas la mm action :

j'aimerais qu'un bouton de ce formulaire sauvegarde la recherche et un autre la lance

Auriez vous la solution a ce petit pb ??
merci d'avance.

10 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
13 janv. 2008 à 15:07
salut,

il suffit de mettre deux <input type="submit"> avec des 'name' différents et de tester les valeurs de retour.

un ch'tite démo !
0
merci bien !!
=)
0
Une remarque toutefois,

ta réponse n'est valable que si je veux ds les deux cas me diriger vers la même page.
Le pb, ici ,c'est que j'ai pour directions deux pages différentes. Suis-je obligé de passer par une page intermédiaire, et donc d'utiliser des headers (et donc aussi sauvegarder tous les POST ds des SESSION) ??
0
Salut, désolé, j'ai bien relu ton exemple, et il doit y avoir moyen que je m'en sorte =)

Auriez vous un tuto sur la variable $_SERVER['PHP_SELF'] ??
Merci d'avance
0

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

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
14 janv. 2008 à 12:59
salut,

[http://fr3.php.net/reserved.variables $_SERVER['PHP_SELF']] représente simplement le nom du script en cours d'exécution.

le manuel PHP
0
Oui mais alors cmt la direction voulue sera-t-elle affichée ?

avant d'envoyer le formulaire avec les posts , cela signifie qu'il va falloir affecter une valeur (stockee ds une variable) à $_SERVER['PHP_SELF'], et que cette affection se fait apres lectrue du formulaire ??

je ne comprends pas tres bien :s
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
14 janv. 2008 à 16:37
je me suis servi de la variable par commodité pour mon exemple.
n'en tiens pas compte.

ton formulaire renvoie vers un seul script (moi j'ai utiliser le même fichier pour tout faire, c'est pourquoi j'ai pris '$_SERVER['PHP_SELF']').
et dans ce script tu peux faire distinguer le <input> qui a été utilisé avec le même test que j'ai utilisé.

donc ensuite à toi de mettre à la place des traitements ce que tu veux. soit l'action elle-même (sauvegarder ou rechercher) soit une redirection vers un autre script ou l'inclusion d'un autre script avec 'include()'.
if( filter_has_var( INPUT_POST, 'save' ) )
{
    $value = filter_input( INPUT_POST, 'value', FILTER_SANITIZE_SPECIAL_CHARS );
    // traitement sauvegarde
}
elseif( filter_has_var( INPUT_POST, 'search' ) )
{
    $value = filter_input( INPUT_POST, 'value', FILTER_SANITIZE_SPECIAL_CHARS );
    // traitement recherche
}
0
ok je regarde ca
a+
0
Ou alors,

tu mets deux boutons submit un avec name="save" l'autre avec name="lance"

dans le script appelé:

if($_POST['save']!=""){

//traitement sauvegarde


}elseif($_POST['lance']!=""){

//traitement lance recherche

}
0
merci à vous =)
0