Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 31-03-2008 14:21:54

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

probleme dans le choix

bonjour

je viens de creer un fichier d'ajout d'une famille d'article cette famille dois etre fourni par un ou plusieur fournisseur

dans mon fichier j'ai lister la liste des fournisseurs et devant un checkbox si il est cocher l'identifiant de la famille et l'identifiant de fournisseur choisie doivent être stockés dans une table four_fam qui a num_four et id_fam comme attribut mais je ne sais pas commet procéder pour récupérer les valeurs de num_four si c possible

sinon avez vous d'autre idées pour faire ce travaille

merci d'avance

Hors ligne

 

#2 31-03-2008 15:31:37

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: probleme dans le choix

C'est un problème de formulaire ou de base de donnée ??


----
Gruiiik !

Hors ligne

 

#3 31-03-2008 15:46:16

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: probleme dans le choix

c'est un problème de récupération de plusieurs num_four car je dois récupérer les valeurs si les fournisseurs sont choisie et je fais une requête d'insertion de ces valeurs dans ma table . avec zend je  sais pas recuperer la valeurs de check box c'est comme ça le code

<?php foreach($this->fours $four):?>

<?php echo $four['nom_four'] ?><input type ="checkbox" name="choix/>

<?php endforeach; ?>
donc à l'affichage il y a autant de check box que des fournisseur si je choisie un ou deux ou plus je dois inserer leus identifiant dans une table fou_fam

est ce possible???
est ce que je peux ajouter value à checkbox et l'associer l'identifiant de fournisseur et puis dans ma requete comment je fais??

merci de m'aidez

Hors ligne

 

#4 31-03-2008 15:58:36

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: probleme dans le choix

Biensur que c'est possible de mettre value="1" dans une checkbox, c'est comme les radios et les autres elements.

ensuite, tu fais une boucle sur tes elements et tu fais tes INSERT (je ne sais pas si tu utilises Zend_Db ou autre..) pour chaque ligne.


----
Gruiiik !

Hors ligne

 

#5 31-03-2008 16:03:35

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: probleme dans le choix

Remplace

Code:

<?php echo $four['nom_four'] ?><input type ="checkbox" name="choix/>

par

Code:

<?php echo $four['nom_four'] ?><input type ="checkbox" name="choix[]" value="$four['nom_four'] "/>

apres soumission du formulaire, ta variable CHOIX est un array avec comme valeur les nom_four cochés

Hors ligne

 

#6 31-03-2008 16:23:31

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: probleme dans le choix

c à d j'écris value="<?php echo $four['num_four'];?> "

et puis il reste le problème de tester  le fournisseur choisie

je peux faire :   if(choix1=="true")

et pour avoir un nom diffirent dans mes checkbox je peux faire come ça

<?php $i=0?>

<?php foreach($this->fours $four):?>

<?php echo $four['nom_four'] ?><input type ="checkbox" name="choix<?php $i>" />
<?php $i++?>


<?php endforeach; ?>est ce peux marcher??? ou c'est faux

et puis dans la variable value de checkbox sera true ou false et ce n'est pas le num_four ??

comment peut je sortir???

Dernière modification par yosra (31-03-2008 16:45:59)

Hors ligne

 

#7 31-03-2008 16:40:55

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: probleme dans le choix

Le nombre de nombre ?? (je m'y perds)
Je ne comprends pas ce que tu veux tester.
Tu écris ce que ndesaleux t'as donné.
Quand ton formulaire est posté, il te suffit de parcourir ton tableau choix[] pour savoir qui a été selectionné.
Si un checkbox n'est pas selectionné, il n'apparaitra tout simplement pas dans le tableau.
Eventuellement, isset est une bonne chose aussi :
if (isset choix[42]) echo 'ok';


----
Gruiiik !

Hors ligne

 

#8 31-03-2008 16:55:36

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: probleme dans le choix

oui désolé j'ai tromper
merci pour le code ndesaleux  je comprend le chamanisme de choix[] si on n'a pas coché le check box il ne sera pas dans la liste.

maintenant pour l'insertion j'ai trouver un autre problème  j'ai dis dés le debut que le num_four et le id_fam seront  stocker dans une table four_fam dans la qu'elle les fournisseurs coché et le id_fam de la famille à ajouter mais comment j'insère le id_fam et elle n'est pas encore créer est ce que je peux faire la requete d'ajout dans la table four_fam après l'insertion de la nouvelle famille dans la table famille

désolé ,je  questionne beaucoup

Hors ligne

 

#9 31-03-2008 17:04:44

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: probleme dans le choix

je crois que je dois changer l'esprit

je dois creer d'abord ma famille dans une page puis dans une autre page je fais une liste deroulante ou en choisie la famille

et on attribut les fournisseurs cochés

donc je boucle et j'insère sur les fournisseurs choisie dans la table four_fam avec l' id de la famille choisie .

Hors ligne

 

#10 31-03-2008 17:13:55

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: probleme dans le choix

ton code HTML devrait te donner

Code:

<ul>
<li>marchand 1<input type="checkbox" name="choix[]" value="marchand 1" checked="checked" /></li>
<li>marchand 2<input type="checkbox" name="choix[]" value="marchand 2" /></li>
<li>marchand 3<input type="checkbox" name="choix[]" value="marchand 3" checked="checked" /></li>
...
<li>marchand n<input type="checkbox" name="choix[]" value="marchand n" /></li>
</ul>

avec un code TPL de type:

Code:

<ul>
<?php foreach($cFour as $oFour): ?>
<li><?php echo $oFour->nom ;?><input type="checkbox" name="choix" value="<?php echo $oFour->id;?>" <?php if ( $oFour->hasFam($oFam->id) ){echo 'checked="checked"}?> /></li>
<?php endforeach; ?>
</ul>
<input type="hidden" name="iIdFam" value="<?php echo $oFam->id; ?>" />

Ton code PHP devrait resembler à un truc du genre

Code:

foreach( $_POST['choix'] as $iIdFour){
   $oFour =new fournisseur($iIdFour);
   $oFour->hadFam($_POST['iIdFam']); // ajoute une association Famille de produit / Fournisseur
   $oFour->update(); // mais a jour le fournisseur ainsi que les associations famille / fournisseur
}

Le code donné n'est pas adapté à ton code existant mais l'idée est la.

Hors ligne

 

#11 01-04-2008 10:08:32

yosra
Membre
Date d'inscription: 03-03-2008
Messages: 83

Re: probleme dans le choix

merci beaucoup  ndesaleux de ce code  j'ai essayer de s'inspirer de ton code

voici mes codes
1_fichier html :

Code:

<tr><td> <?php foreach($this->fours as $four):?></td></tr>
  
  <tr><td class="detailfour1"> <?php echo $four['nom_four'];?>:<input type ="checkbox" name="choix" value="$four['num_four']{echo 'checked="checked"} "/></td></tr>

  <?php endforeach; ?>
  
  

   <tr><td class="detailfour1">Nom famille</td><td class="detailfour1">     
   
   
               <select  id="famille_select" name="famille_select">
            
                <option value="">_ _ Liste des familles _ _</option>
                    <?php foreach($this->famille as $fam):?>
                    
                    <optgroup label="<?php echo $fam['nom_fam'];?>"></optgroup>
                    
                    <option  value="<?php echo $fam['id_fam'];?>"  ><?php echo $fam['nom_fam'];?></option>
                     <?php endforeach; ?> </select></td>


        
        <tr><td >

la liste des familles sont disponible dans une liste deroulate donc on choisir la famille puis on choisie les fourisseurs voulue

2-code php dans index controllers

Code:

if ($this->_request->isPost()) {
            Zend_Loader::loadClass('Zend_Filter_StripTags');
            $filter = new Zend_Filter_StripTags();

            
            $famille_select = trim($filter->filter($this->_request->getPost('famille_select')));
            $choix = trim($filter->filter($this->_request->getPost('choix')));                
            ////////***Les test**//////////
                
             if ($famille_select !='' && $choix!='') 
             {
             foreach( $_POST['choix'] as $iIdFour){
                       
                           $data = array(
                        'id_fam' => $famille_select,
                        'num_four' => $iIdFour,
                             );
                             
                            $fourfam = new Fourfam();
                             $fourfam->insert($data);

                            }
                                         
                    
             
            
                $this->_redirect('/');
                return;
            
            }
            else
            {
            echo" Vous devez remplir tous les champs !";
                }

si je choisie une famille de la liste et je coche un ou deux fournisseur il y a un chargement dans la page mais lorsque je consulte ma base(PhpMyadmin) je constate que les identifiant des fournisseur et de la famille ne sont pas insérer dans la table four_fam
???

est ce que il y a une faute dans mon code ???

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages