begin process at 2012 05 30 18:15:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Pb de récupération de variable de checkbox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb de récupération de variable de checkbox

mercredi 10 août 2005 à 10:58:30 | Pb de récupération de variable de checkbox

paulinett

Bonjour,

J'ai créé un formulaire qui affiche un tableau dont chaque ligne correspond à un fournisseur.
Pour une machine donnée, dont je récupère le nom_machine, j'affiche ce formulaire en cochant le fournisseur qui lui est associé (code formulaire_modif_fournisseurmachine.php). Ce formulaire s'affiche correctement.

Par contre, le user peut tout à fait modifier ce "tableau à cocher" et en appuyant sur le bouton 'modifier' faire un update sur la table machine en modifiant le fournisseur associé (code modif_fournisseurmachine.php).

Seulement, je n'arrive pas à récupérer la variable id_fournisseur. j'obtiens Array !
Je ne sais pas comment faire... Pouvez-vous m'aider ?

Merci d'avance et bonne journée

Paulinett'

Voici mon code :

modif_fournisseurmachine.php

<HTML>
<HEAD>
<TITLE> Modification des caractéristiques d'une machine </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>

<BODY>

<!-- Récupération des variables pour l'update fournisseur -->
<?php
   // Récupération de variables du formulaire
    $nom_machine=$_POST['nom_machine']; 
     echo $nom_machine;
    
    $id_fournisseur=$_POST['fournisseur'];
     echo $id_fournisseur;    
   
?>

<H1> Résultat de la mise à jour de votre fournisseur pour la machine <?php echo $nom_machine;?> </H1>

//<?php 
   // On a besoin de ce fichier pour la connexion
    require("Connect.php");
 
   // Connexion au serveur et accès à la base
     $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
     mysql_select_db (BASE, $connexion);
     
    // Requete engendrée par la pression du bouton Modifier
    if (isSet($_POST['modifier']))
      $requete = "UPDATE Machine "
           ."SET Machine.id_fournisseur=$id_fournisseur"
           ."WHERE nom_machine='$nom_machine'";
    
    // Exécution de la requête SQL
    
    $resultat = mysql_query($requete,$connexion);
    if ($resultat)
      echo "<HR> La requête '$requete' a été effectuée.\n";
    else
     {
      echo "La requête n'a pas pu être effectuée pour la raison suivante :"
        .mysql_error($connexion);
     }
     
?>

<H2><A HREF="Retourhttp://localhost/liste_machine.php">Retour</A><H2>
</BODY>
</HTML>

formulaire_modif_fournisseurmachine.php

<HTML>
<HEAD>
<TITLE> Formulaire de modification du ou des fournisseurs d'une machine </TITLE>
<LINK REL =stylesheet HREF='film3.css' TYPE='text/css'>
</HEAD>

<BODY>

<H1> Formulaire de Modification de lu fournisseur de la machine </H1>

<FORM ACTION="modif_fournisseurmachine.php" METHOD=POST>

<!--------------------------------------->
<!-- RECUPERATION DU NOM DE LA MACHINE -->
<!--------------------------------------->

<?php
  $nom_machine =$_POST['nom_machine'];
  
?>


<H2> Tous les Fournisseurs disponibles </H2>
<H3> Les founisseurs de votre machine <FONT COLOR=red><?php echo $nom_machine ; ?></FONT> sont cochés </H3>

<?php
  // Appel le fichier connect.php
  require_once("Connect.php");
  
    // Connexion au serveur et accès à la base
   $connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
   mysql_select_db (BASE, $connexion);
  
   // Ecriture de la 1ere Requete pour sélectionner tous les fournisseurs
   $fournisseurs_tous=mysql_query("SELECT id_fournisseur, nom_fournisseur, adresse_fournisseur, codePostal_fournisseur, ville_fournisseur, tel_fournisseur, fax_fournisseur, email_fournisseur, contact_fournisseur  FROM Fournisseur",$connexion);
  
   //Ecriture de la 2ème Requete pour sélectionner tous les fournisseurs de la machine
  $fournisseurs_machine=mysql_query("SELECT Fournisseur.id_fournisseur FROM Fournisseur, Machine WHERE Machine.nom_machine LIKE '%$nom_machine%'",$connexion);
     
  
    echo "<CENTER><TABLE BORDER=4 CELLSPACING=2 CELLPADDING=2>"
         //."<CAPTION ALIGN=bottom>Table <I>Données Principales</I></CAPTION>"
         ."<TR><TH>Nom<TH>Adresse<TH>Code Postal<TH>Ville<TH>Téléphone<TH>Fax<TH>Email<TH>Contact<TH>Check</TR>\n";
    
    
    while($machine_fournisseurs=mysql_fetch_object($fournisseurs_machine))
     {
      while ($tous_fournisseurs= mysql_fetch_object($fournisseurs_tous))
        {
         if ($machine_fournisseurs->id_fournisseur == $tous_fournisseurs->id_fournisseur)
         {
           echo '<TR><TD>'.$tous_fournisseurs->nom_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->adresse_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->codePostal_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->ville_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->tel_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->fax_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->email_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->contact_fournisseur.'</TD><TD>'
            .'<INPUT TYPE=CHECKBOX NAME="fournisseur[]" VALUE="'.$machine_fournisseurs->id_fournisseur.'" CHECKED></TD></TR>';
         }
         else
         {
           echo '<TR><TD>'.$tous_fournisseurs->nom_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->adresse_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->codePostal_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->ville_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->tel_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->fax_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->email_fournisseur.'</TD><TD>'
            .$tous_fournisseurs->contact_fournisseur.'</TD><TD>'
            .'<INPUT TYPE=CHECKBOX NAME="fournisseur" VALUE="'.$machine_fournisseurs->id_fournisseur.'"></TD></TR>';
         }
       }  
    } 
    echo "</TABLE></CENTER>\n";   
?>

<!-- champ caché avec le nom de la machine pour le récupérer pour l'update fournisseur -->
<INPUT TYPE=HIDDEN NAME="nom_machine" VALUE=<?php echo $nom_machine;?>>


<CENTER><H3>Confirmez-vous ce nouveau fournisseur ?</H3></CENTER>
<CENTER><INPUT TYPE=SUBMIT VALUE='Modifier' NAME='modifier'></CENTER>


</FORM>


</BODY>
</HTML>

mercredi 10 août 2005 à 11:01:58 | Re : Pb de récupération de variable de checkbox

morpheus262

POur afficher un tableau
c print_r($tableau); sans les []

et si ca amrche pas
essaie
ca
$id_fournisseur[ ]=$_POST['fournisseur'][ ];
il faut lui dire que tu vuex tout le tableau



Loi du plagiat industriel de Felson : Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.
mercredi 10 août 2005 à 11:22:29 | Re : Pb de récupération de variable de checkbox

paulinett

merci pour cette réponse rapide (:

déja, dans mon fichier formulaire_modif_fournisseurmachine.php
le nom de ma checkbox doit etre fournisseur[] ou fournisseur ??

ensuite j'ai essayé ta solution $id_fournisseur[ ]=$_POST['fournisseur'][ ]; mais ca ne fonctionne pas...

je ne comprends pas bien...

mercredi 10 août 2005 à 11:26:49 | Re : Pb de récupération de variable de checkbox

morpheus262

le nom de ton checkbox doit etre un tableau oui bien sur. as tu essayer egalement le print_r avec ta version.

$id_fournisseur[ ]=$_POST['fournisseur'][ ]; sans les espace entre les [ ] c  etait juste pour que ca soit visible sur le site, mais de toute facon ca ne dois pas changer les choses.

autres possibilité
$id_fournisseur[]=$_POST['fournisseur[]']; //mais je doute de celle la lol
$id_fournisseur[]=$_POST['fournisseur']; //peut etre plus probable

je t avoue que je ne suis plus sur et que j ai souvent ce probleme aussi alors je teste tout lol.



Loi du plagiat industriel de Felson : Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.
mercredi 10 août 2005 à 11:38:29 | Re : Pb de récupération de variable de checkbox

paulinett

print_r ne me donne rien !
mercredi 10 août 2005 à 11:40:45 | Re : Pb de récupération de variable de checkbox

morpheus262

Et les deux autres facon de faire, avec un print_r toujours apres bien sur, pas de echo vu que le but et d avoir un tableau


Loi du plagiat industriel de Felson : Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.
mercredi 10 août 2005 à 11:44:47 | Re : Pb de récupération de variable de checkbox

paulinett

la seule solution pour qu'il n'y ait pas d'erreur c'est
$id_fournisseur[]=$_POST['fournisseur'];
ensuite j'ai fait un print_r et voila ce que ca me donne :
Array ( [0] => Array ( [0] => 2 ) )
je ne comprends pas bien cette info... il y a deux tableaux imbriqués ?
j'ai deux fournisseurs qui sont présents : celui dont l'id est 6 : il n'est pas coché et celui dont l'id est 2 : il est coché...
mercredi 10 août 2005 à 11:49:09 | Re : Pb de récupération de variable de checkbox

morpheus262

OUi y a deux tableau donc normalement
$id_fournisseur=$_POST['fournisseur'];
avec un print_r marche alors. et la la reponse veux dire que oui tu as l id 2 de coché uniquement, dans le tableau tu ne vas avoir que les reponse a true ou coché en faite. 

Loi du plagiat industriel de Felson : Voler les idées d'une personne, c'est du plagiat. En voler à plusieurs, c'est de la recherche.
mercredi 10 août 2005 à 11:58:58 | Re : Pb de récupération de variable de checkbox

paulinett

le problème c'est que quand je coche mes deux fournisseurs id=2 pour la premiere ligne et id=6 pour la seconde, ca me donne :
Array( [0] => Array ( [0] => 2 [1] => 2 ) )  !!
normallement si je comprends bien, je devrais avoir 6 en face de [1]=>, non ?

et puis j'ai un deuxième problème (décidément (((:) : c'est avec ma requete :
      $requete = "UPDATE Machine "
           ."SET Machine.id_fournisseur=$id_fournisseur"
           ."WHERE Machine.nom_machine LIKE '%$nom_machine%'";
il m'annonce un problème avant Machine.nom_machine... je suppose que le SET sur $id_fournisseur ne lui plait pas !

ahlala ((:

mercredi 10 août 2005 à 12:03:57 | Re : Pb de récupération de variable de checkbox

paulinett

alors, j'ai trouvé la réponse à un des deux problèmes :
dans mon code, je ne dois pas déclarer les values des checkbox avec $machine_fournisseurs->id_fournisseur mais avec $tous_fournisseurs->id_fournisseur !!!
logique !!! petite tete cette paulinett'

par contre j'ai toujours mon problème de requete !

1 2

Cette discussion est classée dans : connexion, id, machine, fournisseur, fournisseurs


Répondre à ce message

Sujets en rapport avec ce message

Problème de liste déroulante [ par paulinett ] Bonjour,Je suis débutante et je viens d'écrire un code qui doit permettre à un user d'obtenir des infos sur une machine en fonction de ses choix : nom pb de fenetre [ par paulinett ] Bonjour,Je suis débutante et j'aimerais obtenir de l'aide pour réaliser un pop.J'ai un formulaire qui demande au user de choisir : - un ou tous les no CHECKBOX à cocher suivant une boucle [ par paulinett ] Bonjour,j'ai déja posté à propos de ce code mais la, le problème est autre.je voudrais faire un check dans les checkbox suivant une boucle.j'ai une li AU SECOURS !!! PB de ponctuation [ par paulinett ] Bonjour,Je souhaite faire un formulaire de modif d'une machine déjà existance dont j'ai récupéré le nom_machine qui est la clé primaire de ma table ma Probleme de requete [ par lowkey ] Salut à tous !Voici ma requete : SELECT * FROM `travail_fournisseur` e WHERE e.id_fournisseur NOT IN (select t.id_fournisseur from cp_fournisseur t) g Acceder a la base de données d'une machine virtuelle [ par mickael56100 ] Bonjour tout le monde, je souhaiterais accéder à la base de données d'une machine virtuelle. J'utilise Wamp Server sur les 2 machines, ma machine phys Liste deroulantes liées (en php avec bdd) qui marche presque lol [ par bandzai87 ] Enregistrement des &#233 URGENT!!!!!!!!! Serveur Socket [ par Tibo82 ] Voilà, j'ai déjà laissé un message concernant les sockets en php et que je n'y connaissait rien. Maintenant j'ai réussi a crée un client qui fonction php/mysql erreur incomprehenssible <help> [ par luccs ] bonjour, voila j ais fait un petit script qui va gentilment afficher les details d un fournisseur (lister dans une box)mais voila il plante quand l id Problème de LIENS !!! AU SECOURS !!! [ par paulinett ] Bonjour,J'ai un problème avec des liens.j'ai trois fichiers :- liste_machine.php : lorsque je clique sur le nom d'une machine, je vais directement sur


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,714 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales