IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Problème simple sur formulaire


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut Problème simple sur formulaire
    Bonjour,

    Je suis en tain de faire un site Intranet , mais j'ai un problème concernant un formulaire.
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <table cellspacing="10" cellpadding="10" class="classic-content">
    	<tr>
    	<form method="post">	
    		<td colspan="4" class="white" align="left">Filtrer l'affichage :<br/>
    		<a href="search.php?filtre=Tous" onclick="this.style.fontWeight='bold';this.style.textDecoration='underline';">Tous</a>&nbsp/&nbsp
    		<a href="search.php?filtre=Vert" onclick="this.style.fontWeight='bold';this.style.textDecoration='underline';">Vert</a>&nbsp/&nbsp
    		<a href="search.php?filtre=Rouge" onclick="this.style.fontWeight='bold';this.style.textDecoration='underline';">Rouge</a>
    		</td>
    	</form>
    	<form name="formulaire" id="formulaire" style="margin: 20px 120px 20px;">
    		<td colspan="4" class="white" align="right">
    		<input type="text" name="champ_Nom" id="champ_Nom"size="20">
    		<input type="submit" id="bouton_submit">
    		</td>
    	</tr>
    	</form>
    </TABLE>
    <hr />
    <?PHP
     
    //Données de l'uitlisateur
    require("users_info.php");
     
    //Si champ_Nom n'existe pas dans l'url on met la variable a blanc sinon une erreur se produit à la 1 ére ouverture  de la page requete.php
    if(empty($_GET['champ_Nom']))
    {
            $_GET['champ_Nom'] = "";
    }
    $search_nom=($_GET['champ_Nom']);
     
    //Filtre d'affichage
    if(empty($_GET['filtre']))
    {
            $_GET['filtre'] = "Tous";
    }
    $filtre=($_GET['filtre']);
     
    // Connexion au serveur
            mysql_connect($sql_serveur,$sql_user,$sql_passwd);
            mysql_select_db($sql_table);
     
    // Creation et envoi de la requete en fonction de ce que contient la variable "$_GET ['champ_Nom'] et $filtre.
    $req_deb= "SELECT * FROM ".$serveur."_".$sql_table." where ";
    $req_fin = "Etablissement like '$_group' order by nom; ";
    if ($search_nom == "")
    {
            switch ($filtre) 
            {
                case 'Tous' :
                    $req = $req_deb.$req_fin;
                    break;
                    case 'Rouge' :
                            $req_inter =" Autorise = 'N' and ";
                            $req = $req_deb.$req_inter.$req_fin;
                            break;
                    case 'Vert' :
                            $req_inter =" Autorise = 'O' and ";
                            $req = $req_deb.$req_inter.$req_fin;
                            break;
                    default :
                            break;
            }
    }       
     else 
    {
     $req_inter= " nom like '$search_nom' and ";
     $echo =('Recherche exécutée sur : $search_nom</BR>');
            switch ($filtre)
            {
                    case 'Tous' :
                            echo $echo;
                            $req = $req_deb.$req_inter.$req_fin;
                            break;
                    case 'Rouge' :
                            echo $echo;
                            $req_inter2 =" Autorise = 'N' and ";
                            $req = $req_deb.$req_inter.$req_inter2.$req_fin;
                            break;
                    case 'Vert' :
                            echo $echo;
                            $req_inter2 =" Autorise = 'O' and ";
                            $req = $req_deb.$req_inter.$req_inter2.$req_fin;
                            break;
                    Default :
                            break;
            }       
    }
            echo($req);
    Mon probleme se situe principalement dans le transfert des variables $filtre et $champ_nom, comme ci elle passaient l'une apres l'autre donc les conditions de mes requetes ne sont jamais satisfaite en je tourne toujour sur les mêmes requetes, si vous voyez quelque chose qui cloche dans le code .
    Merci pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    556
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 556
    Par défaut
    je comprends pas pourquoi tu aprles de method post dans le formulaire puis ensuite tu apeplles tes variable$_GET
    çà ne serait aps plutôt $_POST ???

  3. #3
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Par défaut
    salut,

    Ton premier form ne ser a rien car il ne conitent ni input, ni submit.
    Le deuxieme ne sert à rien non plus car il n'a pas de method ni d'action

    Tu ne peux envoyer qu'un seul formulaire a la fois...

    Tu devrais aussi revoir l'imbrication de ton html ( http://validator.w3.org/ )

    Si tu veux récupérer des variables en get en plus de ce que tu envoies en post, il faut que les paramètres de l'url apparaisent dans l'attribut action...

    Pour tes variables, tu peux aussi envisager de faire trois boutons submit avec des "name" différents (par exemple rouge, vert ou tous)

    puis dans ton script:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_POST['rouge'] ) ...
    if (isset($_POST['vert'] ) ...
    if (isset($_POST['tous'] ) ...
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    ba je ne sais pas pourquoi mais quand je mets post ca ne fonctionne pas correctement. Je vais revoir mon formulaire en entier mais le probleme c'est que je ne peut pas utiliser plusieurs bouttons car cela sort de la charte imposée par Mercedes.
    L'imbrication joue t-elle un rôle essentiel dans le code ?
    Le fait de ne pas mettre action ne veut pas dire que je suis dans la page courante ? sinon je mets action=ma_page_courante et cela revient a meme

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par javaboy
    ba je ne sais pas pourquoi mais quand je mets post ca ne fonctionne pas correctement.
    C'est normal, GET est la méthode par défaut. Donc comme tu ne précises pas l'attribut method dans ton form, tu es en get. C'est facile à voir : les paramètres du formulaire apparaissent dans l'URL de la page.

    Citation Envoyé par javaboy
    L'imbrication joue t-elle un rôle essentiel dans le code ?
    Pas pour PHP. C'est surtout un gage que ta page sera affichée correctement par le navigateur.

    Citation Envoyé par javaboy
    Le fait de ne pas mettre action ne veut pas dire que je suis dans la page courante ? sinon je mets action=ma_page_courante et cela revient a meme
    Si, tout à fait.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Et pour ton problème, c'est comme disait MasterOfChakhaL, tu ne peux envoyer qu'un formulaire à la fois. Donc soit tu cliques sur un lien et la page se rafraîchit en n'envoyant que le paramètre filtre (paramètre d'URL), soit tu remplies et cliques sur le bouton et tu envoies le 2nd formulaire et tu n'envoies que champ_Nom. Donc dans aucun cas, ton code PHP ne récupère les 2 paramètres en même temps.

    C'est quoi le workflow attendu ? Tu cliques d'abord sur une couleur puis tu remplis champ_Nom et tu valides ou tu n'es pas obligé de choisir une couleur d'abord ? Ce que tu peux faire, c'est pas filtre en tant que paramètre caché du formulaire qui contient champ_Nom, comme ça, quand tu valides le formulaire de champ_Nom, tu envoies aussi filtre.

    Sinon, ton code pour récupérer tes paramètres d'URL n'est pas terrible. Fais plutôt un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $search_nom = (isset($_GET["champ_Nom"]))?$_GET["champ_Nom"]:"";
    $filtre = (isset($_GET["filtre"]))?$_GET["filtre"]:"Tous";

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 250
    Par défaut
    Le workflow est le suivant:
    En fait mon champ nom sert a faire une recherche sur une personne
    Les "champs" tous/Rouge/vert sont un filtre de recherche
    Plusieur cas possibles:
    Mon utilisateur tape un Nom on va dire X mais il y à plusieurs X dans ma base des rouges et des verts , donc mon user filtre que les rouges ou que les verts ou les deux.
    Il peut egalement ne pas rentrer de nom et filtrer sur rouge ou il verra tous les rouges de ma base , ou vert tout les verts et tous ba tous .
    J'espère avoir été asser clair.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Problème simple sur access , difficile pour moi
    Par Boubkergmp dans le forum Modélisation
    Réponses: 5
    Dernier message: 13/06/2015, 21h53
  2. Problème simple sur requete sql
    Par williams59 dans le forum ASP
    Réponses: 15
    Dernier message: 02/01/2008, 14h18
  3. [débutant]petit problème sur formulaire avec onglets
    Par Christophe93250 dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2006, 10h46
  4. Problème: condition sur formulaire dans requête
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2005, 23h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo