plusieurs valeurs pour une variable?

Eléphant du PHP | 55 Messages

28 juin 2005, 11:51

ok mon code qui mettais toutes mes entree de la base dans ma liste deroulante c'etait :
Imprimante :
   <select name="imprimante">
       <option>--choisissez--</option>
     <?php
                        $base = "ges_imprimante";
       			//ouverture de la nouvelle connexion sur la base
                        if ($base != -1 ){
                            //ouvertur de la nouvelle connexion sur la base récupérée
                           $link = connect_db($base);
                            //édition de la requete
                            $bureau=$_post['bureau'];
                            $requete_util = "select * from imprimante";
							//execution de la requete
                            $resultat_util = mysql_query($requete_util) or die ("requete base erreur");
                            while ($data = mysql_fetch_array($resultat_util))
                            {
                                print "<option value='".$data['imprimante']."'>".$data['imprimante']."</option>";
                            }
                          
                        }
                        else
                        {
                            ?>
        <div class="erreur">
        
      
      Aucune base n'est activ&eacute;e.
      
      
        </div>
        <br>
        <br>
        <?php
                        }
                        //fermeture de la connection
                        mysql_close();
                        ?>
      </select> 

pour les checkbox le debut doit etre pareil et apres c est comment ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

28 juin 2005, 11:59

ben si tu générais une liste déroulante avec toutes les imprimantes, tu ne devrais pas avoir de soucis pour créer des checkbox...

une liste :
<select name="imprimante">
<option value="$id"> $nom</option>
</select>

une checkbox
<input type="checkbox name="imprimante[]" value="$id"> $nom

Invité
Invité n'ayant pas de compte PHPfrance

28 juin 2005, 13:17

J'ai essaye comme ceci mais il me met un parse error a la ligne :
 print <input type=checkbox name="imprimante[]" value='".$data['imprimante']."'> ".$data['imprimante'].";
Imprimante :

     <?php
                        $base = "ges_imprimante";
       			//ouverture de la nouvelle connexion sur la base
                        if ($base != -1 ){
                            //ouvertur de la nouvelle connexion sur la base récupérée
                           $link = connect_db($base);
                            //édition de la requete
                            $bureau=$_post['bureau'];
                            $requete_util = "select * from imprimante";
							//execution de la requete
                            $resultat_util = mysql_query($requete_util) or die ("requete base erreur");
                            while ($data = mysql_fetch_array($resultat_util))
                            {
                              
                            print <input type=checkbox name="imprimante[]" value='".$data['imprimante']."'> ".$data['imprimante'].";

                           }
                          
                        }
                        else
                        {
                            ?>
        <div class="erreur">
        
      
      Aucune base n'est activ&eacute;e.
      
      
        </div>
        <br>
        <br>
        <?php
                        }
                        //fermeture de la connection
                        mysql_close();
                        ?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 juin 2005, 13:24

Là, je vais te jeter la pierre mais tu n'a pas regardé ta ligne :
print <input type=checkbox name="imprimante[]" value='".$data['imprimante']."'> ".$data['imprimante'].";
le < qui devrait être un " au début ?
print "input type=checkbox name="imprimante[]" value='".$data['imprimante']."'> ".$data['imprimante'].";
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 55 Messages

28 juin 2005, 13:30

ha bon le < devrait etre un " :shock: pk ?

meme avec le " j ai toujours l erreur de parse a la meme ligne

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 juin 2005, 13:36

d'accord, je saisi le problème :

Si tu veut écrire du HTML avec un echo, il faut que tu mettes ton HTML dans une chaine

Tu ne découpe cette chaine que pour mettre tes variables PHP

exemple :
print "<input type=checkbox name='".imprimante[]."' value='".$data['imprimante']."'> ".$data['imprimante'].">";
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 55 Messages

28 juin 2005, 13:41

arffff
l erreur doit etre dans le code ou je sais pas ou parceque meme avec cette ligne il me met toujours un parse error sur sur cette ligne.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 juin 2005, 13:43

En détaillant encore un peu plus le code, je me suis rendu compte que tu utilisais un tableau sans indice
imprimante[]
Soit c'est pas un tableau et tu enlève les [], soit c'est un tableau et tu rajoute l'index à utiliser
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

28 juin 2005, 13:47

pas obligé, sans les indices le tableau sera indexé automatiquement :)

il manque un $ à imprimante[]
print "<input type=checkbox name='".$imprimante[]."' value='".$data['imprimante']."'> ".$data['imprimante'].">";

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 juin 2005, 14:01

that's right :lol:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 55 Messages

28 juin 2005, 14:02

ba en fait je savait pas trop a koi ca servait :) , j ai recopier ca sur le code a ouckileou ^^

donc j ai teste en enlevant les []
et bon ca s affiche a peut pres mais c est pas tout a fait ce que veux :)

Notice: Use of undefined constant imprimante - assumed 'imprimante' in c:\program files\easyphp1-8\www\ges_imprimante\nouvelle_cartouche\formulaire1.php on line 78
HP 1220c>
Notice: Use of undefined constant imprimante - assumed 'imprimante' in c:\program files\easyphp1-8\www\ges_imprimante\nouvelle_cartouche\formulaire1.php on line 78
6400>
Notice: Use of undefined constant imprimante - assumed 'imprimante' in c:\program files\easyphp1-8\www\ges_imprimante\nouvelle_cartouche\formulaire1.php on line 78
Phaser 8400>
Notice: Use of undefined constant imprimante - assumed 'imprimante' in c:\program files\easyphp1-8\www\ges_imprimante\nouvelle_cartouche\formulaire1.php on line 78
Lexmark W812>
Notice: Use of undefined constant imprimante - assumed 'imprimante' in c:\program files\easyphp1-8\www\ges_imprimante\nouvelle_cartouche\formulaire1.php on line 78
Dell A320>

juste avant le nom des imprimante j ai la checkbow qui apparait et je peux la cocher et la decocher.

mon code est :
Imprimante :

     <?php
                        $base = "ges_imprimante";
       			//ouverture de la nouvelle connexion sur la base
                        if ($base != -1 ){
                            //ouvertur de la nouvelle connexion sur la base récupérée
                           $link = connect_db($base);
                            //édition de la requete
                            $requete_util = "select * from imprimante";
							//execution de la requete
                            $resultat_util = mysql_query($requete_util) or die ("requete base erreur");
                            while ($data = mysql_fetch_array($resultat_util))
                            {
                              
                            print "<input type=checkbox name='".imprimante."' value='".$data['imprimante']."'> ".$data['imprimante'].">"; 

                           }
                          
                        }
                        else
                        {
                            ?>
        <div class="erreur">
        
      
      Aucune base n'est activ&eacute;e.
      
      
        </div>
        <br>
        <br>
        <?php
                        }
                        //fermeture de la connection
                        mysql_close();
                        ?>
et si je test avec ta technique ouckileou ca me donne un parse error a la ligne
print "<input type=checkbox name='".$imprimante[]."' value='".$data['imprimante']."'> ".$data['imprimante'].">"; 

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 juin 2005, 14:06

enlève les [] et laisse le $
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

28 juin 2005, 14:06

non mais en fait je dis n'importe quoi, pour l'instant imprimante n'est pas une variable, simplement le nom de la future variable
print "<input type=checkbox name='imprimante[]' value='".$data['imprimante']."'> ".$data['imprimante'].">";
si tu enlèves les crochets tu ne pourras pas récupérer toutes les valeurs cochées
(il faudrait un exemple de traitement de saisie dans des cases à cocher :lol:)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 juin 2005, 14:10

autant pout moi, je devrais lire les sujets avec un peu plus d'attention ...

Sorry :oops:

ouckileou a parfaitement raison
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 55 Messages

28 juin 2005, 14:29

bon on s approche du resultat dernier petit detail
apres chaque nom d imprimante j ai un >
ex :HP 1220c> 6400> Phaser 8400> Lexmark W812> Dell A320>

sinon (la il va y avoir du boulot) apres comment je fais pour savoir les lesquelles cases sont coche?

comment je fais pour qu il fasse autant d'insertion que de case de cocher?

voila deja avant que j ai compris le tout on decrait etre tard ce soir ^^