Adresse d'une page PHP

Résolu/Fermé
scofield59 Messages postés 2129 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 5 juillet 2011 - 24 sept. 2010 à 14:49
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 - 27 sept. 2010 à 09:40
Bonjour,

voilà, d'un côté j'ai une page html contenant un formulaire. De l'autre une page php affichant le résultat d'une requete sql qui change selon les données du formulaire.
Jusque là y a pas de soucis...
Par contre, j'aimerais que l'on puisse retrouver la page php contenant le resultat sans avoir à re-remplir le formulaire, c'est à dire, il faut que chaque page php générée ait une adresse propre.
J'ai pensé donc à passer des paramètres par l'url mais comment passer des paramètres alors que le formulaire n'est même pas encore rempli...
Bref un vrai casse-tête pour moi.
Je sais pas si c'est très clair pour vous, donc n'hésitez pas si vous voulez plus d'info..

Merci d'avance ^^
A voir également:

5 réponses

Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
24 sept. 2010 à 14:56
Bonjour,

Si une personne a déjà remplit le formulaire, il faut que la page ré-exécute la requête avec ces données?
Ca existe... T'as même une case à cocher sur certains site spour ça. "Se souvenir de moi".
La solution, c'est bien sur de passer par les cookies. Comme ça, tu stockes les données sur le pc du client, et quand tu vois que les données existent, tu les utilises, sinon, tu lui fait remplir le formulaire =)
0
scofield59 Messages postés 2129 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 5 juillet 2011 97
Modifié par scofield59 le 24/09/2010 à 15:11
Je te remercie pour ta réponse ^^

Donc tu penses qu'en utilisant des cookies, ça reglerait mon problème. C'est vrai que j'y avais pensé mais je pensais trouver quelque chose de plus simple, comme passer les paramètres via l'url... je l'avais déjà fait pour acceder à des annonces, pour chaque annonce je passais le numero de l'annonce que j'utilisais dans ma requète sql pour l'afficher. Trés simple et efficace. Mais là c'est vrai qu'on a aucune donnée à la base donc rien à passer dans l'url...
0
scofield59 Messages postés 2129 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 5 juillet 2011 97
24 sept. 2010 à 15:22
Je viens de penser à un truc : bon, c'est un peu aller chercher la ptite bête mais si une personne affiche 2 resultats différents, mais veut sauvegarder les 2 pages différentes mais donc ayant la même adresse. Le cookie aura permis de sauvegarder juste le dernier résultat non ? et donc on perdrait l'ancien...
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
24 sept. 2010 à 15:23
Oui, mais les paramètres sont les mêmes pour tous les utilisateurs?
Si c'est ça, tu mets un
if(isset($_POST[tavariable]))
{
 $var = mysql_real_escape_string($_POST[tavariable]);
}
else
{
 $var = "valeur par défaut";
}


Sinon, t'es obliger de stocker les données du formulaires pour chaque utilisateur, soit dans leurs cookies, soit sur ton serveur.
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
24 sept. 2010 à 15:28
Pour répondre à ton deuxième post, comment il peux choisir la page sauvegarder sans remplir le formulaire?

Tu peux stocker tout ce que tu veux dans les cookie.. Au pire, tu met un array, et s'il y a deux lignes dedans, tu lui sors un menu déroulant qui lui permet de choisir entre les deux.
0
scofield59 Messages postés 2129 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 5 juillet 2011 97
Modifié par scofield59 le 24/09/2010 à 15:45
Oui, les paramètres seront les mêmes pour tous les utilisateurs. En fait, c'est un formulaire de recherche multi-critères permettant de voir une liste d'offres correspondant. Donc il n'y a que les critères choisis qui sont passés pour pouvoir faire la requète sql et afficher les résultats correspondant.
Donc le if(isset etc... pourrait récupérer mes champs du formulaire ? en le plaçant dans la même page ou est présent le formulaire que je renommerais du coup en php ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 sept. 2010 à 19:17
il faut que la page formulaire soit en .php
et utiliser l'atribut value des <input

<?php
//partie initialisation et raitement du formulaire
 // 1 methode ternaire
$champ1=isset($_POST['champ1']) ? $_POST['champ1'] : "";
$champ2=isset($_POST['champ2']) ? $_POST['champ2'] : "";
$champ3=isset($_POST['champ3']) ? $_POST['champ3'] : "";
if(isset($_POST['envoyer'])){
 //le formualire est posté : traitement de ton formulaire


}


////   ou  ////
//2 autre methode
//init des variables pour premier affichage
$champ1="";
$champ2="";
$champ3="";
if(isset($_POST['envoyer'])){
 //le formualire est posté : recup des valeurs des champs et traitement de ton formulaire
    $champ1=$_POST['champ1'] ;
$champ2=$_POST['champ2'];
$champ3=$_POST['champ3']; 

}
?>
<html>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="champ1" value="<?php echo $champ1; ?>">
<input type="text" name="champ2" value="<?php echo $champ2; ?>">
<input type="text" name="champ3" value="<?php echo $champ3; ?>">
<input type="submit" name="envoyer" value="Envoyer">
</form>
0
scofield59 Messages postés 2129 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 5 juillet 2011 97
Modifié par scofield59 le 24/09/2010 à 19:54
D'accord donc c'est comme si j'utilisais <form target="" method="post"> et je récupère donc les données dans la même page non ?
Par contre il faudra que je redirige directement vers ma page de résultat pour passer mes parametres dans l'url mais ça je sais pas trop comment vu que d'habitude le bouton submit du formulaire s'occupe de la redirection...

Sinon Apatik, je veux bien donner mon code mais là je suis plus au boulot donc je l'ai pas sur moi... Mais de toute façon, je pense pas que ça servirait à grand chose vu que le code en lui-même n'a pas d'importance.
Y a juste une page avec un formulaire trés simple passant 5 paramètres (domaine,localisation,contrat,salaire,mots clés) et le résultat de la recherche sur une autre page exploitant les paramètres dans une requete sql pour afficher les offres correspondantes. Et ça marche y a pas de soucis, le seul probleme c'est de pouvoir retrouver le même resultat de recherche sans avoir à repasser par le formulaire mais juste en mettant l'adresse http.
Après je veux bien filer le code mais faudra attendre lundi...

En tout cas, je vous remercie déjà pour l'aide que vous m'apportez ^^
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
Modifié par Apatik le 24/09/2010 à 20:21
Bein.. sans choisir les paramètres qu'on veux, l'ordi fait pas de la lecture de pensée...

Je reformule la question: qu'est-ce que tu voudrais qu'il se passe quand on va sur ta page php sans être passé par le formulaire?
-La dernière recherche
-Le choix entre les recherches déjà effectuées
-Toutes les offres
-Une sélection par défaut
-....
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 24/09/2010 à 20:58
c'est comme si j'utilisais <form target="" method="post">

sauf qu'il manque les attributs action= et name = dans ta balise <form ...

d'habitude le bouton submit du formulaire s'occupe de la redirection...

le bouton submit "soumet" le formualire au script précisé justement dans l'attribut action="..."de la balise <form

Par contre il faudra que je redirige directement vers ma page de résultat pour passer mes parametres dans l'url

pourquoi les passer par l'url ils sont passés par la methode POST

dans mon exemple ci dessus, la page résultat c'est la partie php au début

si tu veux que les résultats s'affichent en dessous du formulaire tu mets la partie traitement où tu veux:

<?php  
//partie initialisation  
 //  methode ternaire  
//champ posté ? si oui la variable prend la valeur postée, si non vide ""  
$champ1=isset($_POST['champ1']) ? $_POST['champ1'] : "";  
$champ2=isset($_POST['champ2']) ? $_POST['champ2'] : "";  
$champ3=isset($_POST['champ3']) ? $_POST['champ3'] : "";  
?>  



<html>  
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">  
<!-- $_SERVER['PHP_SELF'] => php renvoie le nom du script en cours c a d le nom de cette page qui doit être en .php bein sur ! -->
<input type="text" name="champ1" value="<?php echo $champ1; ?>">  
<input type="text" name="champ2" value="<?php echo $champ2; ?>">  
<input type="text" name="champ3" value="<?php echo $champ3; ?>">  
<input type="submit" name="envoyer" value="Envoyer">  
</form>  
<?php  
if(isset($_POST['envoyer'])){  
 //le formulaire est posté : partie traitement de ton formulaire  
//affichage des résultats  

}  
?>  


ainsi si l'utilisateur n'est pas satisfait des résultats le formulaire se ré-affichant avec les valeurs précédemment saisies ou sélectionnées n'a plus qu'a en modifier une ou deux et à refaire Submit pour avoir de nouveaux résultats
0

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

Posez votre question
scofield59 Messages postés 2129 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 5 juillet 2011 97
24 sept. 2010 à 21:02
En fait je pense que ce sont mes explications qui ont manqué de clarté...

Je veux juste que si par exemple on remplit, le formulaire et donc le résultat s'affiche dans une nouvelle page, que l'on puisse mettre cette page dans nos marque-pages et que celà affiche le même résultat quand on la recharge.
Là si je fais ça, ça me donne plusieurs erreurs car aucune variable n'a été postée vu que l'on est pas passé par le formulaire...
0
scofield59 Messages postés 2129 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 5 juillet 2011 97
24 sept. 2010 à 21:10
Est-ce que c'est plus clair ? ...
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
Modifié par Apatik le 24/09/2010 à 23:03
Bah tu met ton formulaire en méthode GET, et puis c'est tout... Comme Google:

Regarde ce lien
0
scofield59 Messages postés 2129 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 5 juillet 2011 97
25 sept. 2010 à 13:17
Ca serait aussi simple que ça ??
J'avoue que j'ai jamais pensé à mettre un formulaire en méthode GET...
Je teste lundi et je vous tient au courant.

Merci ^^
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
25 sept. 2010 à 13:54
bah oui, puisque les variables sont dans l'url.. quand il enregistre l'url, il enregistre les variables avec!
0
scofield59 Messages postés 2129 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 5 juillet 2011 97
27 sept. 2010 à 09:31
J'y crois pas le noob...

Dire qu'un simple remplacement de POST par GET résolvait mon problème...
Apparemment j'avais rien compris au GET... Pour moi, ça permettait juste de récupérer des variables passées dans l'url mais pas d'en envoyer...

Et après je fais du php objet alors qu'y a des bases comme celle-ci qu'on est censé connaître... Je vais me plaindre à mon formateur lol

Bon, en tout cas, je vous remercie tous les deux pour votre patience et votre aide.

A bientôt ^^
0