IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Récupérer simultanément toutes les données d'un formulaire [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Récupérer simultanément toutes les données d'un formulaire
    Bonjour

    Je suis sur un problème épineux sous symfony 1.4.

    Je récupère dans un formulaire d'ajout les données d'un premier formulaire, à savoir le nom d'un client et ces noms de domaines (séparés par des sauts de ligne).
    S'affiche donc dans mon deuxieme formulaire tous les noms de domaines avec pour chacun d'entre eux des données à renseigner (le compte registar, l'url et des remarques).
    Voici un exemple de ce qui apparait a l'écran concernant le deuxième formulaire une fois les données saisies :

    toto.com | Directnic | www.toto.com | blablabla
    toto.fr | Afnic | www.toto.fr | bla
    toto.net | Gandi | www.toto.net | blabla
    Puis, lorsque je clique sur "Ajouter" pour ajouter ces données en base, il ne prend en compte uniquement que la derniere ligne puisque il s'agit en fait du meme formulaire mais répéter autant de fois qu'il y a de nom de domaines.
    Voici mon code du formulaire dans mon template :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <form action="<?php echo url_for('@add_domaines');?>" method="post">
    	<!-- Affiche un rendu des erreurs globales -->
    	<?php echo $form->renderGlobalErrors() ?>
     
    	<table class="form_add_domaines">
    		<thead>
    			<tr>
    				<th><?php echo $form['nom_domaine']->renderLabel()?></th>
    				<th><?php echo $form['compte_registar_id']->renderLabel() ?></th>
    				<th><?php echo $form['url']->renderLabel() ?></th>
    				<th><?php echo $form['remarque']->renderLabel() ?></th>
    			</tr>	
    		</thead>
     
    		<tbody>
    			<?php 
    			//On scinde les noms de domaines en fonction du saut de ligne
    			$domaines = explode("\n",$add_domaines);
    			for($i=0; $i<count($domaines); $i++)
    			{?>	
    				<tr>
    					<td>
    						<?php 
    						if(1==strcmp(' ', $domaines[$i]))
    						{
    							echo "<span style='color:red;'>"."<b>Attention, aucun nom de domaine n'a été indiqué à l'étape précédente</b>"."</span>";
    						}
    						else 
    						{
    							echo $domaines[$i];
    						}
    						?>
    					</td>
     
    					<td>
    						<!-- Genere toutes les erreurs de validation sur le champ en utilisant l'objet validateur du champ -->
    						<?php echo $form['compte_registar_id']->renderError() ?>
    						<!-- Affiche le champ de saisi -->
    						<?php echo $form['compte_registar_id'] ?>
    					</td>
     
     
    					<td>
    						<!-- Genere toutes les erreurs de validation sur le champ en utilisant l'objet validateur du champ -->
    						<?php echo $form['url']->renderError() ?>
    						<!-- Affiche le champ de saisi -->
    						<?php echo $form['url'] ?>
    					</td>
     
    					<td>
    						<!-- Genere toutes les erreurs de validation sur le champ en utilisant l'objet validateur du champ -->
    						<?php echo $form['remarque']->renderError() ?>
    						<!-- Affiche le champ de saisi -->
    						<?php echo $form['remarque'] ?>
    					</td>			
    				</tr>
    			<?php
    			}
    			?>			
    		</tbody>
     
    		<tfoot>
    			<tr>
          			<td>
      					<?php echo link_to(__('Retour à la 1ère étape', array(), 'sf_admin'), '@domaine_new') ?>
      				</td>
            		<td>
              			<!-- Permet de génèrer tous les champs cachés du formulaire (y compris les CSRF) -->
              			<?php echo $form->renderHiddenFields(false) ?>
              			<input type="submit" class="submit" value="Ajouter" />
            		</td>
          		</tr>
    		</tfoot>
    	</table>
    </form>

    Après avoir cherché longuement sur le net je n'ai rien trouvé pour mon problème, même une imbrication de formulaire avec la méthode ne permettrait pas de résoudre mon problème car il s'agit dans mon cas du même formulaire répété plusieurs fois.

    Donc je suis tout ouïe à une éventuelle solution de votre part car la vraiment je sèche.
    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    c'est bien à effectuer avec embed form, car ce n'est pas un cas du même formulaire répété plusieurs fois mais un grand formulaire contenant plusieurs fois tes formulaires.

    si tu n'as qu'un seul submit et qu'une fois les balises <form> c'est bien qu'un seul formulaire :p

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Bon la méthode embedForm n'est vraiment pas faite pour mon cas.

    La seule solution serai de changer a chaque tour de boucle dans mon formulaire le nom des widget, puisque le probleme est la au final. Il faudrait que je puisse a chaque tour de boucle rajouter mon $i a la fin du nom des widget comme ça ils seront tous pris en compte indépendamment mais je ne vois pas comment faire...

    Une idée ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Resolu
    Bonjour

    Je reviens avec la joie d'avoir enfin résolu mon pb

    Je ne suis donc pas passé par la méthode embedForm().
    En effet, j'ai effectué une boucle dans ma classe de mon formulaire en appliquant au nom des widget le $i correspondant au nombre de domaine saisi. Du coup cela a bien générer autant de input avec des noms différents que de domaine saisi
    Voila si cela intéresse quelqu'un je pourrais ajouter plus de détails.

    Sur ceux, bonne journée !

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    bravo :]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer et afficher les données d'un formulaire html
    Par mikesquake dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 15/12/2010, 03h55
  2. Réponses: 1
    Dernier message: 28/08/2008, 22h53
  3. [AJAX] Récupérer directement les données d'un formulaire
    Par linar009 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 23/12/2007, 13h55
  4. Récupérer les données d'un formulaire
    Par rimeh dans le forum Langage
    Réponses: 12
    Dernier message: 05/02/2007, 14h58
  5. récupérer les données d'un formulaire un peu spécial
    Par Jim_Nastiq dans le forum Interfaces Graphiques
    Réponses: 12
    Dernier message: 10/07/2006, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo