Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-04-2008 14:10:07

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

[escap()]ajout dans une table

bonjour

je viens de créer une page d'ajout qui a pour but d'associer une famille à un service c'est coté base de donnée une table qui contient deux clés étrangères

id_fam et num_serv

dans mon code html j' introduit une liste des famille et une liste des service et si je choisie le service et la famille je clic sur le bouton qui met en relation ces clés

le code html est le suivant

Code :

Code:

<table class="detailsfour">
 
              <tr><td class="detailsfour1">
            <select  id="famille_select" name="famille_select" >
                <option value="">_ _ Liste des familles _ _</option>
                    <?php foreach($this->famille as $fam):?>
                    
                    <option  value="<?php echo $fam['id_fam'];?>"  ><?php echo $fam['nom_fam'];?></option>
                     <?php endforeach; ?> 
                    
                    </select></td></tr>
                                
                
  
<tr><td class="detailsfour">
 
   <select  id="service_select" name="service_select" >
                <option value="">_ _ Liste des Service _ _</option>
                    <?php foreach($this->service as $serv):?>
                    
            
                    <option  value="<?php echo $serv['num_serv'];?>"  ><?php echo $serv['nom_serv'];?></option>
                     <?php endforeach; ?> 
                    
                    </select></td></tr>
  
  <tr><td>
<input type="submit" name="add" 
    value="<?php echo $this->escape($this->buttonText); ?>" />

le code php est le suivant

Code:

$req="SELECT * FROM `consultation1`.`service` ";
    $this->view->service= $GLOBALS['db']->fetchAll($req);
    
    $four="SELECT * FROM `consultation1`.`famille` ";
    $this->view->famille= $GLOBALS['db']->fetchAll($four);
 
    
        $this->view->title = "Ajouter une nouvelle relation Utilisateur Service";
            $servfam = new Servicefamille();
        if ($this->_request->isPost()) {
            Zend_Loader::loadClass('Zend_Filter_StripTags');
            $filter = new Zend_Filter_StripTags();
 
            
            $famille_select = ($filter->filter($this->_request->getPost('famille_select')));
            $service_select = ($filter->filter($this->_request->getPost('service_select')));    
                        
            ////////***Les test**//////////
                
             if ($famille_select !='' && $service_select!='') 
             {
                                         
                    $data = array(
                        'id_fam' => $famille_select,
                        'num_serv' => $service_select,
                             );
 
             $servfam = new Servicefamille();
             $servfam->insert($data);
            
                $this->_redirect('/');
                return;
            
            }
            else
            {
            echo" Vous devez remplir tous les champs !";
                }  
      } 
 
 
        $this->view->servfamille = $servfam->createRow();;
 
        // additional view fields required by form
        $this->view->action = 'servfam';
        $this->view->buttonText = 'Ajouter Relation';
    }

mais lorsque je clic sur le bouton rein ne se passe je reste dans la même page et aucune action n'est faite

Est ce que mon code manque de chose ??? ou il comporte des fautes
Dans la plus part d'ajout on utilise la méthode escape() est ce c'est obligatoire franchement je ne sais pas quel est le rôle de cette fonction
Aidez moi s'il vous plais.

Hors ligne

 

#2 07-04-2008 13:30:08

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [escap()]ajout dans une table

Etes vous sure que rien ne se passe au niveau de votre BD?
Vérifiez s'il y a des mises à jour..

Pour simplifier ton code essaie d'utiliser les models en créant une classe pour chaque table.


Pour rediriger il faut utiliser

Code:

$this->_redirect('/Controller/action');

Bon travail

Dernière modification par ziedb (07-04-2008 13:30:50)

Hors ligne

 

#3 07-04-2008 15:25:07

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

Re: [escap()]ajout dans une table

merci pour ta réponse

concernant le model j'ai pas travailler avec tu peux me donner un exemple simple de les utilisés concernant mes tables ???
merci beaucoup

Hors ligne

 

#4 07-04-2008 16:23:47

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [escap()]ajout dans une table

Dans ta classe tu déclare une classe cClients.php dans ton répertoire Models

Code:

class cClients extends Zend_Db_Table {
    protected $_name = clients;//clients est le nom de ta table dans la base de donnée 
}

Enuite dans ton controller

Code:

$table = new cClients();
$this->view->data = $table->fetchrow($table->select()->where('id = ?', $id));

Puis dans ton view tu fais

Code:

<table>
<?php foreach($this->data as $table) : ?>
<tr>
<td><?php echo $this->escape($table->id);?></td>
<td><?php echo $this->escape($table->client);?></td>
<td><?php echo $this->escape($table->Adresse);?></td>
<td><?php echo $this->escape($table->tel);?></td>
</tr>

</table>
<?php endforeach; ?>

J'espère que ça t'aideras. Si tu veux tu m'envoies un mail et je te réenvoies un exemple complet.
Bon travail

Hors ligne

 

#5 07-04-2008 16:56:17

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

Re: [escap()]ajout dans une table

merci beaucoup ça sera très gentil de ta part si tu m'envoie un exemple complet

j'ai ecrit dans mon controller

Code:

$this->view->title = "Chercher un fournisseur";
        $fournisseurs=new Fournisseur();
        $this->view->data = $fournisseurs->fetchrow($fournisseurs->select());

dans ma vue

Code:

<?php foreach($this->data as $four) : ?>
<tr >
    <td> <li style='text-align:left'> <a  class="categ" onclick="details_categfam(<?php echo $this->escape($four->nom_four); ?>);" href="#"><?php echo $this->escape($four->nom_four);?></a> &nbsp;</td>
<input type="hidden" name="num_four" value="<?php echo $this->escape($four->num_four); ?>"/></li>
    
    <td  ><?php echo $this->escape($four->adr_four);?></td>
    
    <td   ><?php echo $this->escape($four->tel_four_1);?></td>

<?php endforeach; ?>

mais la liste n'affiche rien !!!

Dernière modification par yosra (07-04-2008 17:00:00)

Hors ligne

 

#6 07-04-2008 18:19:46

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [escap()]ajout dans une table

Pour récupérer tous les enregistrements il faut utiliser fetchAll()


Code:

$this->view->title = "Chercher un fournisseur";
        $fournisseurs=new Fournisseur();
        $this->view->data = $fournisseurs->fetchAll();

Dans ta vue, Il faut que tu utilise le même nom de ta variable dans le view et le controleur c-ad $fournisseurs
et non pas  $four.

Code:

<?php foreach($this->data as $fournisseurs) : ?>
<tr >
    <td> <li style='text-align:left'> <a  class="categ" onclick="details_categfam(<?php echo $this->escape($four->nom_four); ?>);" href="#"><?php echo $this->escape($fournisseurs->nom_four);?></a> &nbsp;</td>
<input type="hidden" name="num_four" value="<?php echo $this->escape($fournisseurs->num_four); ?>"/></li>
    
    <td  ><?php echo $this->escape($fournisseurs->adr_four);?></td>
    
    <td   ><?php echo $this->escape($fournisseurs->tel_four_1);?></td>

<?php endforeach; ?>

Pour le mail, je ne peux pas joindre de fichiers avec le formulaires du forum.

Dernière modification par ziedb (07-04-2008 18:26:05)

Hors ligne

 

#7 08-04-2008 08:56:23

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [escap()]ajout dans une table

Bonjour,
pour avoir un exemple il y a ce tutoriel.

http://g-rossolini.developpez.com/tutor … k/debuter/

Bon travail & bonne journée

Hors ligne

 

#8 08-04-2008 09:55:38

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

Re: [escap()]ajout dans une table

bonjour ,
merci bien pour la correction ça marché vraiment tu est super smile merci beaucoup

ainsi pour le tuto
bonne journee

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