Formulaire qui est traité dans la même page.

Formulaire qui est traité dans la même page. - PHP - Programmation

Marsh Posté le 27-01-2005 à 11:42:06    

Bonjour tout le monde  :hello:  
Bon je vais surement me faire huer mais j'ai une question de noob à poser ;)
 
Voila j'ai un formulaire dans lequel j'ai un champ liste.Lorsque l'utilisateur sélectionne un choix une fonction js récupère la valeur séletionnée et renvoie selon vers une page qui affiche une requète correspondant au choix.
J'aimerai faire quelque chose du genre (avec une seule page):
Un champ liste et en dessous, la requete qui s'affiche.
J'imagine que dois jouer avec les balises <div> non?
Pouvez vous m'aider?


---------------
I B M ThinkPad t40 1.5Ghz/80Go 7200rpm/1.25Go
Reply

Marsh Posté le 27-01-2005 à 11:42:06   

Reply

Marsh Posté le 27-01-2005 à 11:55:32    

Déjà met un bouton "Ok" à côté de ta liste, ça aidera ceux qui naviguent au clavier, ou ceux qui n'ont pas javascript, ou ceux sous Lynx...
 
Sinon donc tu fait un formulaire normal, et dans le action, tu met genre :

<form method="get" action="?pouet=ok">
...
</form>


Ensuite dans ton php, t'aura un truc du genre :

Code :
  1. <html>
  2.   [...code de la page...]
  3.   <form>
  4.     [...ton formulaire avec la liste...
  5.   </form>
  6.   <div>
  7. <?php
  8.   if(isset($_GET['pouet']) && $_GET['pouet'] == 'ok') {
  9.     // Affichage du résultat ici
  10.   }
  11. ?>
  12.   </div>
  13. </html>

Reply

Marsh Posté le 27-01-2005 à 12:57:51    

Est il possible de faire la même chose par la méthode post?


---------------
I B M ThinkPad t40 1.5Ghz/80Go 7200rpm/1.25Go
Reply

Marsh Posté le 27-01-2005 à 13:01:30    

Ouais, dans ce cas faut mettre un input hidden dans le formulaire. Mais sinon le GET serait mieux adapté, car il permetterait de bookmarker la page avec la requête désirée :)

Reply

Marsh Posté le 27-01-2005 à 13:32:17    

Bon c'est possible ;) j'ai réussit à le faire fonctionner, mais sans input hidden (je ne sais pas ce que c'est :/)
En tout ca merci grandement :jap:
PAr contre j'ai une dernière question à te poser :whistle:
Apres ma requète, j'utilise un pg_fetch_array avec un boucle while afin d'afficher tout les résultats.
Le truc c'est qu'il est possible qu'il n'y ait aucune réponses.J'aimerai indiquer le message 'Aucun document trouvé' si il n'y a rien à afficher.
Comment dois je faire?
 
Mon code est du style:
 

Code :
  1. if (isset($_POST['P_Type']) && $_POST['P_Type'] == 'misc')
  2. {
  3. $query = pg_query($pgconnection, "select * from misc" );
  4. while ($liste = pg_fetch_array($query))
  5. {
  6. $titre = $liste["titre_misc"];
  7. $date = $liste["date_misc"];
  8. .......
  9. .......
  10. echo"Titre : $titre";
  11. echo"Date : $date";
  12. .......
  13. .......
  14. }
  15. }


---------------
I B M ThinkPad t40 1.5Ghz/80Go 7200rpm/1.25Go
Reply

Marsh Posté le 27-01-2005 à 14:01:36    

tu test que pg_num_rows($query)est supérieur à 0
http://fr3.php.net/manual/fr/function.pg-num-rows.php
 
sinon, echo 'Aucun document trouvé' ;


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 27-01-2005 à 14:31:27    

Yes merci ;) je savais bien qu'il s'agissait d'un truc dans le genre :D


---------------
I B M ThinkPad t40 1.5Ghz/80Go 7200rpm/1.25Go
Reply

Marsh Posté le 27-01-2005 à 14:48:34    

FlorentG a écrit :

<form method="get" action="?pouet=ok">
...
</form>



 
C'est un peu goret ce passage de paramètres :D
 
Dans tous les cas (GET et POST) il met ça dans son formulaire

Code :
  1. <input type="hidden" name="pouet" value="ok">


Reply

Marsh Posté le 27-01-2005 à 14:52:21    

ratibus a écrit :

C'est un peu goret ce passage de paramètres :D
 
Dans tous les cas (GET et POST) il met ça dans son formulaire

Code :
  1. <input type="hidden" name="pouet" value="ok">



 
Non seulement c'est goret, mais en plus ça marche pas, oups :D
 
Les action "?pouet=ok" fonctionnent qu'en POST. En GET, le paramètre pouet est viré je crois bien...

Reply

Marsh Posté le 27-01-2005 à 15:05:29    

ratibus a écrit :

C'est un peu goret ce passage de paramètres :D
 
Dans tous les cas (GET et POST) il met ça dans son formulaire

Code :
  1. <input type="hidden" name="pouet" value="ok">



A quoi sert cet input?


---------------
I B M ThinkPad t40 1.5Ghz/80Go 7200rpm/1.25Go
Reply

Marsh Posté le 27-01-2005 à 15:05:29   

Reply

Marsh Posté le 27-01-2005 à 15:06:47    

A passer un paramètre dans l'envoi. Genre en GET, si je veux passer un paramètre "pouet" avec pour valeur "ok", il me faut un input type="hidden"

Reply

Marsh Posté le 27-01-2005 à 15:24:26    

mais zenfin, quel mélange des genres
 
<form method="get" action="?pouet=ok>
c'est du GET (dans l'url) donc récupérable par $_GET['pouet'];
 
<form method ="post">
<input type="hidden" name="pouet" value="ok">
 
c'est du POST (donc récupérable par $_POST['pouet']; )


Message édité par deliriumtremens le 27-01-2005 à 15:26:04
Reply

Marsh Posté le 27-01-2005 à 15:28:19    

Le premier cas vire le pouet je crois bien, il faut donc le mettre en temps que input hidden.

Reply

Marsh Posté le 27-01-2005 à 15:29:46    

non.
 
De toutes manières tu ne récupéreras pas un input hidden avec un $_GET

Reply

Marsh Posté le 27-01-2005 à 15:32:37    

Si :)
 
Avec :

Code :
  1. <form method="get" action="?pouet=ok">
  2. </form>


J'arrivais pas à récupérer pouet, elle était inexistance dans $_GET.
 
Alors j'ai fait ça :

Code :
  1. <form method="get" action="?">
  2.   <input type="hidden" name="pouet" value="ok" />
  3. </form>


Et là elle était bien dans $_GET

Reply

Marsh Posté le 27-01-2005 à 15:36:18    

deliriumtremens a écrit :

non.
 
De toutes manières tu ne récupéreras pas un input hidden avec un $_GET


Quoté pour la postérité  :p

Reply

Marsh Posté le 27-01-2005 à 15:37:41    

FlorentG a écrit :

Si :)
 
Avec :

Code :
  1. <form method="get" action="?pouet=ok">
  2. </form>


J'arrivais pas à récupérer pouet, elle était inexistance dans $_GET.
 
Alors j'ai fait ça :

Code :
  1. <form method="get" action="?">
  2.   <input type="hidden" name="pouet" value="ok" />
  3. </form>


Et là elle était bien dans $_GET


Tu peux même enlever le ? dans le action.
Le navigateur se débrouille comme un grand pour envoyer les paramètres comme il faut :)

Reply

Marsh Posté le 27-01-2005 à 15:42:46    

ratibus a écrit :

Quoté pour la postérité  :p


 :p  :p  
 
Comment je me suis bien planté, honte à moi.
 
Bref, séance d'auto-flagellation avec des orties fraîches, zou.
 
Je m'en remettrai.

Reply

Marsh Posté le 27-01-2005 à 15:46:58    

votre $pouet=OK, en $_POST ou $_GET est un peu inutile je pense.
Lorsque qu'on valide le formulaire, le bouton submit est possède une variable (name="envoi" par exemple), et on peut lui attribuer une valeur (value="Envoyer" ). donc dans la page il suffit de vérifier si la variable envoi existe, et en plus si la valeur correspond à "Envoyer" si c'est mis dans le formulaire.

Reply

Marsh Posté le 27-01-2005 à 15:49:16    

Surfoo a écrit :

votre $pouet=OK, en $_POST ou $_GET est un peu inutile je pense.
Lorsque qu'on valide le formulaire, le bouton submit est possède une variable (name="envoi" par exemple), et on peut lui attribuer une valeur (value="Envoyer" ). donc dans la page il suffit de vérifier si la variable envoi existe, et en plus si la valeur correspond à "Envoyer" si c'est mis dans le formulaire.


Tout à fait.  :jap:  
De mon côté je tenais juste à clarifier le passage de paramètres à l'aide d'un formulaire. :D

Reply

Marsh Posté le 27-01-2005 à 15:51:26    

Surfoo a écrit :

votre $pouet=OK, en $_POST ou $_GET est un peu inutile je pense.
Lorsque qu'on valide le formulaire, le bouton submit est possède une variable (name="envoi" par exemple), et on peut lui attribuer une valeur (value="Envoyer" ). donc dans la page il suffit de vérifier si la variable envoi existe, et en plus si la valeur correspond à "Envoyer" si c'est mis dans le formulaire.


 
Moi j'aime bien quand-même faire un truc style "action=send", au cas où un jour y'aurait un autre cas :)

Reply

Marsh Posté le 27-01-2005 à 16:58:09    

Surfoo a écrit :

votre $pouet=OK, en $_POST ou $_GET est un peu inutile je pense.
Lorsque qu'on valide le formulaire, le bouton submit est possède une variable (name="envoi" par exemple), et on peut lui attribuer une valeur (value="Envoyer" ). donc dans la page il suffit de vérifier si la variable envoi existe, et en plus si la valeur correspond à "Envoyer" si c'est mis dans le formulaire.


 
+1
tous les <form> que j'ai fait jusqu'à maintenant sont traité dans la même page qu'il sont affiché, et j'ai tjs tout basé sur un test de l'existance et de la valeur du submit... jamais eu de pb jusqu'à maintenant :sol:


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 28-01-2005 à 08:37:47    

En ce qui me concerne je fais tout simplement un test d'existance sur le bouton submit :
 
if(isset($_POST['submit'])) { ... }
 
++


Message édité par Dj YeLL le 28-01-2005 à 08:38:18
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed