formulaire intelligent qui redirige...

formulaire intelligent qui redirige... - HTML/CSS - Programmation

Marsh Posté le 21-08-2004 à 14:06:43    

Bonjour à tous
je viens d'éplucher le forum pour trouver une petite solution à ce problème...pas moyen, où alors très vague !
Alors voilà, je poste !
 
mon problème :
je crée un formulaire où le client doit sélectionner une catégorie dans une liste déroulante, par exemple des aspirateurs ; il a le choix entre aspirateurs-traineaux et aspirateurs-balais.
 
a) comment faire pour la page mise en action dans la balise form soit aspitraino.php ou aspibalai.php ???
 
b) dans le form, si le client a sélectionné son type d'aspirateur ;), je voudrais qu'il rentre aussi  la marque (en tapant lui même dans un champ texte) ; par exemple, s'il souhaite un Moulinex en aspirateurs traineaux, comment faire pour que , s'il sémlectionne aspirateurs traineaux" dans la liste et l tape juste "mou" dans la marque, il soit automatiquemeent rebalancé sur aspitraino.html avec résultat, tous les noms d'aspiros comportant "MOU" ? je crois capter qu'il faut que je fasse du GET, et que je filtre sur la page d'arrivée avec "mou", mais quelle est la syntaxe du WHERE qui me servira à filtrer ?
 
Faut -il que mon form et les pages d'action soient obligatoirement en php ?
 
Ma requête doit vous paraître bien simple, mais j'enrage de ne point y arriver, puisque tous les sites possédant un petit moteur fonctionnent sur ce principe !
 
merci d'avance à tous les spécialistes
Tristan

Reply

Marsh Posté le 21-08-2004 à 14:06:43   

Reply

Marsh Posté le 21-08-2004 à 15:28:52    

a) tu ne peux pas. Tu es obligé d'arriver sur une même page (par exemple aspi.php), puis tu testes la valeur du $_GET['Nom_de_la_liste_déroulante'] et tu inclus  aspitraino.php ou aspibalai.php selon.
 
b)  

  • déjà il faut récupérer le texte de la recherche. Si tu as un formulaire GET, ce sera dans $_GET['nomDuChampTexte']
  • pour la sécurité, applique un  mysql_escape_string par exemple voir sur http://www.nexen.net/docs/php/anno [...] string.php
  • Enfin ta requete :

SELECT .... WHERE nomMarque LIKE '%mou%'  
=> renvoie toutes les marques contenant 'mou', par exemple 'moulinex', 'toumoulou', 'totomou', ...


Message édité par pascal_ le 21-08-2004 à 15:29:29
Reply

Marsh Posté le 21-08-2004 à 15:58:35    

Merci pascal, je vais essayer.
donc dans mon form, je mest en action une page aspi.php, et je prends la méthode get.
dans ce form, je crée deux champs, mettons 'Type' (pour balai et traineau), et puis 'marque'.
ensuite donc tout est balancé sur aspi.php qui récupère les deux paramètres.
mais quelle est la syntaxe php pour tester  la valeur du $_GET pour rediriger ? faut utiliser Include aussi ?
merci beaucoup
Amitiés
Tristan

Reply

Marsh Posté le 21-08-2004 à 16:09:04    

tristus a écrit :


mais quelle est la syntaxe php pour tester  la valeur du $_GET pour rediriger ? faut utiliser Include aussi ?


 

Code :
  1. if( !isset( $_GET['Type'] ){
  2.     echo 'blbalbla erreur pas de type';
  3.     die();
  4. }
  5. if( $_GET['Type']==1 ){
  6.     include 'aspitraineau.php';
  7. }else if( $_GET['Type']==2 ){
  8.     include 'aspibalai.php';
  9. }else{
  10.     echo 'Tentative de hack !?!'
  11.     die();
  12. }


 
Edit : Tu n'est pas obligé d'utiliser d'include si tu fais tous les traitements dans un fichier php (d'ailleurs il y a t'il une si grande différence de traitements entre aspibalai & aspitraineau ?).
 
Tu sembles bien perdu quand même. Consulte http://www.phpfrance.com/tutorials/index.php?id=3 et les autres cours du site.


Message édité par pascal_ le 21-08-2004 à 16:11:04
Reply

Marsh Posté le 22-08-2004 à 10:21:46    

Merci Pascal, je vais essayer.
perdu...J'essaye de l'être le moins possible !  je connais les tutos de php france, je m'en inspire régulièrement, ainsi que d'un livre de programmation (J.M Defrance) qui ne m'a pas quitté cet été...Le problème, c'est que lorsqu'on rencontre une nouvelle difficulté et qu'on ne trouve pas la solution ni dans les tutos ni les bouquins, on piétine...Par exemple, j'ignorais tout de la fonction isset jusqu'à hier ! ;)
J'y retourne, merci encore

Reply

Sujets relatifs:

Leave a Replay

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