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

 PHP Discussion :

création d'un formulaire de contact


Sujet :

PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Par défaut création d'un formulaire de contact
    Bonjour,

    Je suis le tuto de création de formulaire pour me faire une petite page de contact sympathique.

    Malheureusement ca bloque à la partie "la soumission du formulaire". Et bien évidemment ca ne marche pas (quand je clique sur submit il me renvoit sur le template indexSuccess de mon module). J'ai pourtant fait (à peu près) comme expliqué.

    J'ai un contactForm.class.php correct (puisque mon formulaire s'affiche).
    Ma page de contact est dans un module "accueil".
    Et tout ce qui concerne l'envoi / affichage du formulaire est dans la page actions de ce module.

    Avec un routing tout bête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    contact:
      url:  /contact
      param: { module: accueil, action: contact }
     
    submit:
      url: /submit
      param { module: accueil, action: submit }
     
    merci:
      url: /merci/:params
      param { module: accueil, action: merci }
    Ma page actions :

    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
    class accueilActions extends sfActions
    {
     ...
     public function executeContact()
      {
      	$this->form = new ContactForm();
      }
     
      public function executeSubmit($request)
      {  	  	
      	$this->forward404Unless($request->isMethod('post'));
     
    	$this->params = array('nom'=> $request->getParameter('nom'),
    					'email'=> $request->getParameter('email'),
    					'message' => $request->getParameter('message'),);
     
    	$this->redirect('@merci?'.http_build_query($this->params));
      }
     
      public function executeMerci()
      {
     
      }
    }
    et le template de contact :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <div id="contact_main">
    	<?php echo image_tag('image_contact.png') ?>
     
    	<form action="<?php echo url_for('@submit') ?>" method="POST">
    	  <table>
    	    <?php echo $form ?>
    	    <tr>
    	      <td colspan="2">
    	        <input type="submit" />
    	      </td>
    	    </tr>
    	  </table>
    	</form>
    </div>
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Mets le code de l'objet form, il est possible qu'il passe à l'affichage (widget) mais génère un code bateau et non récupérable comme tu le fais.

    Dans ta solution tu utilises a peu près 5% des possibilités du form. Sans l'usage de la validation, le form a peu d'intérêt.

    Tu dis que cela bloque. Certe. Mais qu'est-ce qui bloque ? Un message d'erreur ? Affichage de "rien" ?

    As-tu testé en mode debug ?

    Tu as vu que dans le debug tu as une barre de débug qui s'affiche, elle permet de voir beaucoup de chose, utilises là pour vérifier ce qui se passe.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Par défaut
    Mon objet form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class ContactForm extends BaseForm
    {
    	public function configure()
    	  {
    	    $this->setWidgets(array(
    	      'nom'    => new sfWidgetFormInputText(),
    	      'email'   => new sfWidgetFormInputText(),
    	      'message' => new sfWidgetFormTextarea(),
    	    ));
    	  }
    }
    Je l'utilise en mode debug. Quand je clique sur valider, voici ce qu'il me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Match route "submit" (/submit) for /submit with parameters array ( 'module' => 'default', 'action' => 'index',)
    Il me sort la page d'accueil, pas la page submit (et vide en plus,mais je suppose que c'est normal). J'ai l'impression que c'est ma route qui ne marche pas...

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    En fait, tu fais un redirect sur merci avec 3 paramètres nommés. Sauf que ton lien n'en attend qu'un, d'un autre nom

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 34
    Par défaut
    C'était à cause de cela.
    Merci

Discussions similaires

  1. Aide sur la Création formulaire de contact + paiement Paypal
    Par chris09300 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 16/12/2011, 19h50
  2. Création d'un formulaire de contact à partir d'un Scrit php
    Par galliryc dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 29/06/2009, 16h58
  3. création formulaire de contact
    Par whiteshark dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 26/06/2009, 01h15
  4. Création d'un formulaire de contact
    Par NelzoN dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 03/07/2007, 17h19
  5. Création d'un formulaire sous flash?
    Par ultrakas dans le forum Flash
    Réponses: 5
    Dernier message: 11/01/2005, 19h33

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