Bonjour amis de Grafikart,
J'essaye dans la section profil d'un site que je développe de mettr deux formulaires : 1 formulaire avec un hcmap file pour uploader un avatar et un formulaire pour completer ces informations personnelles, age adresse etc ...

Les deux fonctionnent parfaitement quand ils sont séparé, je veux dire par là quand je met hors service le forulaire avatar celui des infos complémentaires fonctionne et quand je met en service l'avatar il fonctionne mais c'est l'autre qui ne marche plus. J'ai remarqué en fait que quand je tente de mettre à jour mes infos personnelles ma page tente dabord d'envoyer le contenu de mon formulaire image à mon controller, du coup, ca me renvoie un flash session 'image pas au bon format' (forcément j'envoie un champ vide)

J'ai pourtant disocié dans mes deux formulaire le controlleur et l'action vers où ils doivent pointer mais rien n'y fait bizare quand meme.

echo $this->Form->create(array('type' => 'file', 'div' => false, 'url' => array('log' => true, 'controller' => 'avatars', 'action' => 'uppload', AuthComponent::user('id'), $user'Avatar']'id'])));
                                   echo $this->Form->input('file', array('label' => "Image au format png, jpg ou jpeg uniquement", 'class'=>'input_profil', 'type'=> 'file'));
                                   echo $this->Form->input('id', array('div' => false));
                                   echo $this->Form->submit('Ajouter', array('class' => 'button', 'div' => false));
                                   echo ' '.$this->Html->link('Supprimer', array('log' => true, 'controller' => 'Avatars', 'action' => 'delete', AuthComponent::user('id')), array('class' => 'button', 'div' => false));

et l'autre

<?php
                                    echo $this->Form->create('User', array('url' => array('controller' => 'users', 'log' => true, 'action' => 'edit')));
                                    echo $this->Form->input('firstname', array('label' => 'Prénom : ', 'class'=>'input_profil', 'div' => false, 'error' => array('attributes' => array('wrap' => 'span', 'class' => 'tooltip'))));
                                    echo '<br />';
                                    echo $this->Form->input('lastname', array('label' => 'Age : ', 'class'=>'input_profil', 'div' => false, 'error' => array('attributes' => array('wrap' => 'span', 'class' => 'tooltip'))));
                                    echo '<br />';
                                    echo $this->Form->input('city', array('label' => 'Ville : ', 'class'=>'input_profil', 'div' => false, 'error' => array('attributes' => array('wrap' => 'span', 'class' => 'tooltip'))));
                                    echo '<br />';
                                    echo $this->Form->input('job', array('label' => 'Emploi : ', 'class'=>'input_profil', 'div' => false, 'error' => array('attributes' => array('wrap' => 'span', 'class' => 'tooltip'))));
                                    echo '<br />';?>
                                </div>
                                <div class="mot_de_passe">
                                    <?php
                      echo '<h3>Changer de mot de passe</h3>';
                                    echo $this->Form->input('pass1', array('label' => 'Nouveau mot de passe : ', 'class'=>'input_profil', 'div' => false, 'error' => array('attributes' => array('wrap' => 'span', 'class' => 'tooltip'))));
                                    echo '<br />';
                                    echo $this->Form->input('pass2', array('label' => 'Confirmer mot de passe : ', 'class'=>'input_profil', 'div' => false, 'error' => array('attributes' => array('wrap' => 'span', 'class' => 'tooltip'))));
                                    echo '<br />';
                                    echo $this->Form->submit('Modifier', array('div' => false, 'class' => 'button'));         
                                    ?>

Je n'arrive pas a dissocier les deux formulaires, avez vous une idée s'il vous plait :)

Merci d'avance !

3 réponses


extrarox
Réponse acceptée

Salut,

Je suis pas sur que submit() ferme tes formulaires. Essaye avec end() à la place.

A+

Salut je pense comme extrarox, ce n'est pas un submit qu'il faut mais un end à chaque fin de dormulaire, pour bien les différencier. C'est pour cela qu'il croit que les deux formulaires ne font qu'un.

tapesec
Auteur

Oui effectivement c’était bien ça, en fait si on veut utiliser submit pour personnaliser ses boutons par exemple, il faut quand même mettre $this->Form->end() à la fin sans mettre de paramètre :)

Merci