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

Langage PHP Discussion :

probleme de conception d un switch apres plusieur formulaires


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 71
    Par défaut probleme de conception d un switch apres plusieur formulaires
    j'ai un probleme de conception d un switch apres plusieur formulaires, je m explique, je souhaite avoir une page avec trois zone de recherche textarea qui donnerait en fonction du texterea choisi un requete sql differente sur ma base de donnée, jai donc decider de faire un switch, dont la condition serait les bouton ok en dessous de mes textarea, en gros jaurai 3 textarea avec trois bouton OK, un pour chaque texte area, et je veu que mon switch puisse me permettre de savoir sur quel bouton ok l utilisateur a appuyer afin que le case lance la requete sql correspondant a la case qu il auait rempli.

    quelq'un pourrait-il m'éclairer sur le parametre du case pour savoir quel bouton ok a ete cliquer ?

    Voila mon code, comme vous pouvez le voir jai deja donner des nom a mes boutons ok

    Code php : 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
    //Zone de saisie du critère "compname"		 
    	echo "<FORM ALIGN='CENTER' METHOD='GET' ACTION='recherche_ParMot_saisie.php'></br></br></br></br>";
    	echo "<table align='left'><tr><td>Recherche par nom d'ordinateur : </td>";
    	echo '<td><TEXTAREA name="nom" rows=1 cols=40></TEXTAREA>'; 
    	echo "</td>";
    	echo "</tr><tr><td colspan=2 align=center><INPUT name='btn1' TYPE='SUBMIT'value='OK'/><INPUT TYPE='RESET' value='Annuler'/></tr>";
    	echo "</table></form>";
     
    	//Zone de saisie du critère "IP"		 
    	echo "<FORM ALIGN='CENTER' METHOD='GET' ACTION='recherche_ParMot_saisie.php'></br></br></br></br>";
    	echo "<table align='left'><tr><td>Recherche par IP : </td>";
    	echo '<td><TEXTAREA name="nom" rows=1 cols=40></TEXTAREA>'; 
    	echo "</td>";
    	echo "</tr><tr><td colspan=2 align=center><INPUT name='btn2' TYPE='SUBMIT' value='OK'/><INPUT TYPE='RESET' value='Annuler'/></tr>";
    	echo "</table></form>";
     
    	//Zone de saisie du critère "User_Full_name"		 
    	echo "<FORM ALIGN='CENTER' METHOD='GET' ACTION='recherche_ParMot_saisie.php'></br></br></br></br>";
    	echo "<table align='left'><tr><td>Recherche par nom d'utilisateur : </td>";
    	echo '<td><TEXTAREA name="nom" rows=1 cols=40></TEXTAREA>'; 
    	echo "</td>";
    	echo "</tr><tr><td colspan=2 align=center><INPUT name='btn3' TYPE='SUBMIT'value='OK'/><INPUT TYPE='RESET' value='Annuler'/></tr>";
    	echo "</table></form>";

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Très simple: nomme tes bouttons avec l'attribut name et détecte lequel à été pressé avec isset($_POST['button_name']). Tu n'as même pas besoin de 3 formulaires pour ça d'ailleurs, un seul suffit.

    Quelques conseils sur ton script:
    1. pourquoi tu fait autant de echo alors qu'il suffit de sortir de la balise PHP pour repasser en HTML ?
    2. tu mélanges HTML4 et XHTML
    3. évite de faire ta mise en page avec des tableaux

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 71
    Par défaut
    merci ^^ mais je ne suis pas un expert, pourrait tu me montrer la structure du switch avec le isset dont tu parle

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Pas de switch, pas besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (isset($_REQUEST['btn1'])) {
     // boutton 1 pressé
    }
     
    if (isset($_REQUEST['btn2'])) {
     /// boutton 2 pressé
    }
     
    // etc.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 71
    Par défaut
    a ok ^^ au debut je voulai eviter de faire des if, car je trouvai la structure du switch interessante du point de vue de la duree de mon site dans le temps, si les utilisateurs voulaient rajouter des cases de test supplémentaire ils n aurait eu qu a rajouter un case dans mon switch et copier le code precedant en le modifiant legerement ^^

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    switch c'est bien si tu travaille sur des valeurs, ça devient moins adapté quand on travaille sur l'existence d'une variable...

    Sinon, on aurais aussi pu s'en sortir avec un switch si tu y tiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form>
    <fieldset>
      <legend>Recherche</legend>
      <textarea name="search"></textare>
      <button name="btn" value="1">Recherche 1</button>
      <button name="btn" value="2">Recherche 2</button>
      <button name="btn" value="3">Recherche 3</button>
    </fieldset>
    </form>
    Coté PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (isset($_REQUEST['btn']) && $btn = $_REQUEST['btn']) {
      switch ($btn) {
         case 1: // boutton 1 pressé
            break;
         // etc.
      }
    }

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 71
    Par défaut
    ouai mais la ya qu un text area moi jen ai besoin de 3, avec un bouton pour chaque textarea ^^

  8. #8
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Bah mets en 3 dans des fieldset différents avec leur bouton associé.

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 71
    Par défaut
    okay merci bien

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 71
    Par défaut
    Le switch ne fonctionne pas, il doit y avoir un probleme dans la recuperation des valeurs, voila mon code

    Code php : 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
    	<BODY>	
    	<!-- Zone de saisie du critère "compname"--> 		 
    	<FORM METHOD='GET' ACTION='recherche_ParMot_saisie.php'>
    		<fieldset>
    		  <legend>Recherche par nom d'ordinateur</legend>
    		  <TEXTAREA name="nom" rows=1 cols=60></TEXTAREA>	
    		  <button name="btn" value="1">Rechercher</button>
    		  <button TYPE='RESET'>Annuler</button>
    		</fieldset>
    		<fieldset>
    		  <legend>Recherche par IP</legend>
    		  <TEXTAREA name="ip" rows=1 cols=60></TEXTAREA>
    		  <button name="btn" value="2">Rechercher</button>
    		  <button TYPE='RESET'>Annuler</button>
    		</fieldset>
    		<fieldset>
    		  <legend>Recherche par nom d'utilisateur</legend>
    		  <TEXTAREA name="user" rows=1 cols=60></TEXTAREA>
    		  <button name="btn" value="3">Rechercher</button>
    		  <button TYPE='RESET'>Annuler</button>
    		</fieldset>
    	</form>
     
    <?php	
    if (isset($_REQUEST['btn']) and $btn = $_REQUEST['btn']) 
      {
        switch ($btn) 
            {
    	case 1: // boutton 1 pressé
                // si les variables existent, on affiche le résultat en dessous (isset = <<existe>>)
    	if (isset($_GET["nom"]))
    	  {
    	    //Début de mon développement 
    	    $nom = $_GET["nom"];
                     //Début de la requête 1
    	    if ($nom == "")
    	    {
                        echo "</br>";	
                        echo "<TABLE BORDER=1 ALIGN='center' WIDTH=40%>
                                   <TR>
                                   <TD align = center class='erreur'>Ecrivez quelque chose</TD>
                                    </TR>
    		</TABLE>";
    	   }
    	    else
    	       {
                         $rq = "SELECT * FROM view_sessions WHERE compname LIKE '%".$nom."%';";
                        //Exécution de la requête 1
    	       $resultat = executer_requete2($rq, "base");                                   
                        $ligne = mysql_fetch_assoc($resultat);                                           
                        $nblignes = mysql_num_rows($resultat);                                           
                        if ($nblignes>0)
    		{
    	                 //Affichage du résultat de la requête
                                 echo "<TABLE BORDER=1 ALIGN='center'>                                                     
                                          <TR>
    	                              <TD align = center class='onglet_td'>Nombre de resultats trouv&eacute;s</TD>  
    			</TR>
    			<TR align = center>
    					            <TD>".$nblignes."</TD>
    			</TR>
    		          </TABLE>";
    		         tableau_session($ligne,$resultat);
    		    }
    		     else
    			{
    			  echo "</br>";
    			  echo "<TABLE BORDER=1 ALIGN='CENTER' WIDTH=40%>
    												<TR>
    				   <TD align = center class='onglet_td'>Votre demande n'a retourn&eacute; aucun r&eacute;sultat</TD>
    												</TR>
    			       </TABLE>";
    			}
    		}
    	    }
    	break;
    	// etc.
    	}
          }
           echo"</body>";
       echo"</html>";
    ?>

  11. #11
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Valide la valeur de la variable $btn avec var_dump.

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

Discussions similaires

  1. problème de conception : cycle
    Par FarookFreeman dans le forum Diagrammes de Classes
    Réponses: 13
    Dernier message: 20/10/2005, 11h15
  2. Probleme de conception pour un update Oracle!
    Par vempiria dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/09/2005, 11h28
  3. [Language]Problème de conception
    Par lautre dans le forum Langage
    Réponses: 5
    Dernier message: 26/09/2005, 08h56
  4. [Evenement]Probleme de conception
    Par le Daoud dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 26/05/2005, 15h12
  5. probleme de conception de classe
    Par NhyMbuS dans le forum C++
    Réponses: 2
    Dernier message: 08/05/2005, 18h10

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