probleme comparaison de variable

probleme comparaison de variable - PHP - Programmation

Marsh Posté le 19-11-2004 à 01:12:09    

je cree un menu déroulant en php avec une requete mysql et je voudrai ajouter l'option isselected (ou dans le genre je c plus de tete) mais j'arive a comparer 2 variable enfin pas à cet endroit :  
 

Citation :


<select NAME="classe" onChange="actualise_classe();" style="background-color:teal; color:yellow" size="1">
<option>
<?php
 
include "connect.php";
$query = "SELECT distinct classe FROM emprunteur";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
 while ($row = mysql_fetch_array($result)) {
  $class= $row['classe'];
   
  echo "<option value=\"empRetourLivres.php?cla=$class&no=$nom&pren=$prenom\" >$class";
 
// IL EST LA LE PROBLEME ($classe c la variable ke je récupere dans la page lors de l'actualisation donc si class=classe alors il fo selectionner l'option mias comme ca ca marche pa (pr l'instan j'essai juste d'ajouter un mess dans l'option
 
if ($class===$classe){
 echo " salut";
}
 
echo "</option>";  
 }
}
?>
</select>


 
merci d'avance à ceux ki se pencheront sur mon prob.

Reply

Marsh Posté le 19-11-2004 à 01:12:09   

Reply

Marsh Posté le 19-11-2004 à 04:08:13    

Pourquoi un === plutôt qu'un simple == ?

Reply

Marsh Posté le 19-11-2004 à 07:02:20    

oui je c j'ai oddi essayé le == ca marche pa non plus

Reply

Marsh Posté le 19-11-2004 à 07:23:33    

Code :
  1. $classe = $_REQUEST["classe"];


?


Message édité par Ayuget le 19-11-2004 à 07:23:41
Reply

Marsh Posté le 19-11-2004 à 07:30:13    

je récupere déja la var classe ds le tablo request. j'avai essayé de faire un test if (class==classe) pr afiché un mess et avan le if j'afiché la valeur des var. un momen ell sont bien égal mais rien ne s'affiché.

Reply

Marsh Posté le 19-11-2004 à 09:19:21    

Code :
  1. <select NAME="classe" onChange="actualise_classe();" style="background-color:teal; color:yellow" size="1">
  2. <?php
  3. include "connect.php";
  4. $query = "SELECT distinct classe FROM emprunteur";
  5. $result = mysql_query($query);
  6. if (mysql_num_rows($result) > 0)
  7. {
  8. while ($row = mysql_fetch_array($result))
  9. {
  10.   $class= $row['classe'];
  11.  
  12.   echo "<option value=\"empRetourLivres.php?cla=" . $class . "&no=" . $nom . "&pren=" . $prenom . "\" >" . $class;
  13. // IL EST LA LE PROBLEME ($classe c la variable ke je récupere dans la page lors de l'actualisation donc si class=classe alors il fo selectionner l'option mias comme ca ca marche pa (pr l'instan j'essai juste d'ajouter un mess dans l'option
  14. //en supposant que $classe = $_REQUEST['class'];  
  15. if ($class == $classe)
  16. {
  17. echo " salut";
  18. }
  19. echo "</option>\n"; 
  20. }
  21. }
  22. ?>
  23. </select>


 
normalement $classe est égal à quoi? parce que la ton $class il est égal à:
empRetourLivres.php?cla=" . $class . "&no=" . $nom . "&pren=" . $prenom  
 
qui lui meme dépend de $class. Enfin tu vois l'histoire quoi! :)

Reply

Marsh Posté le 19-11-2004 à 17:09:48    

oui enfin bon là c'est un peu normal nan?
En écrivant salut en plein milieu de ton select, tu risque pas de le voir.

Reply

Marsh Posté le 19-11-2004 à 17:38:58    

Ayuget a écrit :

oui enfin bon là c'est un peu normal nan?
En écrivant salut en plein milieu de ton select, tu risque pas de le voir.


 
Il l'a mis dans les options.
 
Pour répondre au soucis de base, ben je sais pas, echo $_REQUEST['classe'] ne t'affiche rien du tout après avoir soumis ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 19-11-2004 à 18:29:25    

donc voi si je fé :  

Citation :


if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_array($result)) {
        $class= $row['classe'];
         
        echo "<option value=\"empRetourLivres.php?cla=$class&no=$nom&pren=$prenom\" >$class";
if ($class==$classe){
    echo " salut";
}echo "classe=$classe","class=$class";  
echo "</option>";


 
dans le menu il me met :
-> CM1 classe=PSclass=CM1
-> CM2 classe=PSclass=CM2
...
quand j'arrive a PS il affiche toujours le meme :
-> PS classe=PSclass=PS
mais il ne me mets pa le "salut"
 
avant j'affiche la variable classe (ki correspon au champs selectionne dans ce menu dans la page précédente(enfin avant d'etre actualisé))elle m'affiche bien PS comme dans le menu !
(c'était pas mal les double paranthese !! mdr)
donc je compren pa pk il m'affiche bien les 2var identique ("PS classe=PSclass=PS" ) et k'il ne rentre pas dans le if ...

Reply

Marsh Posté le 19-11-2004 à 18:34:38    

a moins ke kelk1 puissent me doné le code pr faire ca en javascript et l'inséré dans mon code (qui c ? ca pouré pe etr marcher ! lol)

Reply

Marsh Posté le 19-11-2004 à 18:34:38   

Reply

Marsh Posté le 19-11-2004 à 18:35:47    

Sielfried a écrit :

Il l'a mis dans les options.


Exact j'avais pas vu.
+1 pour la valeur de retour de $_REQUEST["classe"]

Reply

Marsh Posté le 19-11-2004 à 18:54:38    

Si j'affiche echo $_REQUEST['cla'] (tjrs dans le select apré le if) il m'afiche bien ma variable. J'ai mis cla car le nom de la var ki é passé en parametre de ma page.

Reply

Marsh Posté le 19-11-2004 à 20:30:29    

kelk1 ve pe etr le code entier de la page (je pe le commenter si il faut) ?

Reply

Marsh Posté le 19-11-2004 à 22:02:11    

gaetancop a écrit :

kelk1 ve pe etr le code entier de la page (je pe le commenter si il faut) ?


oui (et entre balises [code] stp)

Reply

Marsh Posté le 19-11-2004 à 22:31:56    

voila le code en intégrale (j'espere k'il va bien passé avec les balise (je coné lé coné pa core sur ce forum)
 

Code :
  1. <?
  2. // affichage des var nom et classe (prenom ne marche pa car il n'y a pas de fonction actualise_prenom')
  3. $classe=$_REQUEST["cla"];
  4. echo $classe; 
  5. $nom=$_REQUEST["no"];
  6. echo $nom;
  7. $prenom=$_REQUEST["pren"];
  8. echo $prenom;
  9. ?>
  10. <html>
  11. <head>
  12. <meta name="generator" content="HTML Tidy, see www.w3.org">
  13. <title>emp</title>
  14. </head>
  15. <body>
  16. <form name="eleve" action="empruntVal.php">
  17. <div align="center">
  18. <center>
  19. <p>Classe &nbsp;&nbsp; <select name="classe" onchange=
  20. "actualise_classe();" style="background-color:teal; color:yellow"
  21. size="1">
  22. <option>
  23. <?php
  24. // création des option du menu déroulant classe en recherchant dans la table emprunteur les diferente classe existantes   
  25. include "connect.php";
  26. $query = "SELECT distinct classe FROM emprunteur";
  27. $result = mysql_query($query);
  28. if (mysql_num_rows($result) > 0) {
  29.     while ($row = mysql_fetch_array($result)) {
  30.         $class= $row['classe'];
  31.        
  32.         echo "<option value=\"empRetourLivres.php?cla=$class&no=$nom&pren=$prenom\" >$class";
  33. // il est là le probleme !
  34. if ($class==$classe){
  35.     echo " salut";
  36. }echo "classe=$classe","class=$class"; 
  37. echo $_REQUEST['cla'];
  38. // ici classe correspon bien la var qui est en parametre de la page et class corespon a la classe de l'option en cour de traitement (tout s'affiche) et le $_REQUEST['cla'] corespon bien a $classe
  39. echo "</option>";
  40.    
  41.     }
  42. }
  43. ?>
  44. </option>
  45. </select></p>
  46. </center>
  47. </div>
  48. <!-- creation du menu déroulant nom sur le meme rincipe ke le précedent il se mets bien a jour lorsque je change de classe -->
  49. <div align="center">
  50. <center>
  51. <p>Nom &nbsp;&nbsp; <select name="nom" onchange="actualise_nom();"
  52. style="background-color:teal; color:yellow" size="1">
  53. <option><?php
  54. include "connect.php";
  55. $quer = "SELECT nom from emprunteur WHERE classe LIKE '%$classe%'";
  56. $resul = mysql_query($quer);
  57. if (mysql_num_rows($resul) > 0) {
  58.     while ($res = mysql_fetch_array($resul)) {
  59.         $n= $res['nom'];
  60.    
  61.         echo "<option
  62. value=\"empRetourLivres.php?cla=$classe&no=$n&pren=$prenom\" >$n";
  63.     }
  64. }
  65. ?></option>
  66. </select></p>
  67. </center>
  68. </div>
  69. <!-- creation du menu déroulant prénom sur le meme rincipe ke le précedent il se mets bien a jour lorsque je change de nom -->
  70. <div align="center">
  71. <center>
  72. <p>pr&eacute;nom &nbsp;&nbsp; <select name="prenom" style=
  73. "background-color:teal; color:yellow" size="1">
  74. <option><?php
  75. include "connect.php";
  76. $quer = "SELECT prenom from emprunteur WHERE classe LIKE
  77. '%$classe%' AND nom LIKE '%$nom%' ";
  78. $resul = mysql_query($quer);
  79. if (mysql_num_rows($resul) > 0) {
  80.     while ($res = mysql_fetch_array($resul)) {
  81.        
  82.         $p= $res['prenom'];
  83.         echo "<option
  84. value=\"empRetourLivres.php?cla=$class&no=$n&pren=$p\" >$p";
  85.     }
  86. }
  87. ?>
  88. </option>
  89. </select></p>
  90. </center>
  91. </div>
  92. <!-- zone de saisie pour le numéro du livre (fonctione) puis validation du formulaire -->
  93. <div align="center">
  94. <center>
  95. <p>N&deg; du livre &nbsp;&nbsp;<input type="text" name="idl" value=
  96. "">
  97. <input type="submit" value="Rechercher" name="Rechercher"></p>
  98. </center>
  99. </div>
  100. </form>
  101. <!-- les fonction javascript qui me permettent d'actualiser ma page a chaque changement du nom ou de la classe-->
  102. <script type="text/javascript">
  103. function actualise_classe() {
  104. var site = document.eleve.classe.selectedIndex;
  105. {
  106. window.location.href = document.eleve.classe.options[site].value;
  107. }
  108. }
  109. function actualise_nom() {
  110. var site = document.eleve.nom.selectedIndex;
  111. {
  112. window.location.href = document.eleve.nom.options[site].value;
  113. }
  114. }
  115. </script>
  116. <br>
  117. <br>
  118. </body>
  119. </html>


 
et voici une capture du menu classe avec les test (pareil, en esperant ke ca passe) :
 
[img]C:\Documents and Settings\Gaetan Portable\Mes documents\Mes images\screen.jpg[/img]
(c moin évident ke ce soit passé vu ke ca vien de mon dur)

Reply

Marsh Posté le 20-11-2004 à 13:30:43    

si ca interesse klk1 la solution à mon probleme est :  

Code :
  1. if (trim ($class)== trim($classe)){
  2.     echo " salut";
  3. }echo "classe=$classe","class=$class";


 
MERCI JULIEN !!
 
en fait la fonction d'apres ce k'il m'a expliqué permet d'éliminé les caractere spéciaux. j'ai bien expliqué ?

Reply

Marsh Posté le 20-11-2004 à 13:54:16    

gaetancop a écrit :

si ca interesse klk1 la solution à mon probleme est :  

Code :
  1. if (trim ($class)== trim($classe)){
  2.     echo " salut";
  3. }echo "classe=$classe","class=$class";


 
MERCI JULIEN !!
 
en fait la fonction d'apres ce k'il m'a expliqué permet d'éliminé les caractere spéciaux. j'ai bien expliqué ?


trim() ca vire les espaces en début et fin de chaîne.


Message édité par Ayuget le 20-11-2004 à 13:54:24
Reply

Marsh Posté le 20-11-2004 à 18:17:11    

merci pr la précision

Reply

Sujets relatifs:

Leave a Replay

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