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

Zend Framework PHP Discussion :

transmettre le formulaire jquery poste


Sujet :

Zend Framework PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut transmettre le formulaire jquery poste
    bonjour a tous
    Comme l'indique le titre je veux transférer les données du formulaire au contrôleur en utilisant jquery.
    /*=======moteur ajax========*/
    Code javascript : 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
     
    $('#bcli').click(
    	function ajcli(){
    var n = $('#nomcli').val(); var a = $('#adrcli').val(); var t = $('#telcli').val(); var m = $('#emailcli').val();
    	alert(n+" "+a);
    	$.ajax({
    	 type: 'POST',
    	 url: "<?php echo $this->url(array('controller'=>'index','action'=>'ajcli'));?>",
    	 data: "nomcli = ess"+n+"& adrcli = dsdf"+a+"& telcli = "+t+ "& emailcli = dsfvds" + m ,
    	 dataType: 'text',
    	 success: function ajcli(rep){
    	 		$('#okcli').html(rep);
    							},
    	error: function(){alert('erreur kasiko');}
    					});
    				});
    /*=========formulaire========*/
    Code html : 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
     
    <form name="formcli" method="post" action="#">
    	<p>
    		<label>nom
    			<input type="text" name="nomcli" id="nomcli">
    		</label>
    	</p>
    	<p>
    		<label>adresse
    			<input type="text" name="adrcli" id="adrcli">
    		</label>
    	</p>
    	<p>
    		<label>telephonne
    			<input type="text" name="telcli" id="telcli">
    		</label>
    	</p>
    	<p>
    		<label>email
    			<input type="text" name="emailcli" id="emailcli">
    		</label>
    	</p>
    	<p>
    		<input id="bcli" type="submit" value="enregistrer"/><input type="reset" value="effacer"/>
    	</p>
    </form>
    /*====controlleur======*/
    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
     
    public function ajcliAction() {
        		echo 'test';
     
        		$client = new Model_Tclients();
        		$lc = $client->createRow();
        		$lc->nom = $this->_request->getParam('nomcli','defnom');
        		$lc->adr = $this->_request->getParam('adrcli','defadr');
        		$lc->tel = $this->_request->getParam('telcli','deftel');
        		$lc->mail = $this->_request->getParam('emailcli','defmail');
     
        		$lc->nom = $_POST['nomcli'];
     
     
        		$this->view->resultat = $lc->save();
     
        }
    Mon problème c'est que je n'arrive pas à récupérer les données au niveau du contrôleur.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Points : 100
    Points
    100
    Par défaut vérif de la soumission du formulaire
    Bonjour,

    Commence par vérifier que les données sont bien envoyées.

    Un simple
    file_put_contents('post', print_r($_POST,true ) ) ;
    dans ton controlleur fera l'affaire et va créer un fichier contenant le récap des données envoyées en post au niveau du répertoire où est rangé ton controlleur.
    Tu peux aussi utiliser
    file_put_contents('post', print_r($this->getRequest()->getParams,true ) ) ;
    pour être plus "ZF".



    De plus $this->_request est déconseillé, le _ devant le nom indique par convention une propriété encapsulée(private), je ne peux que te conseiller très fort de passer par la méthode accesseur ou getter correspondante

    getRequest()


    Xavier

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    merci monsieur pour votre aide, vraiment j'ai beaucoup chercher sur le net et j'ai pas encore résolut cette problème .j'ai respecter ce que vous m'avez dit de faire et j'ai pas trouver le fichier dont tu parle, j'espère que ne soit pas une règle de nommage, voici mon arborescence:
    -gesi
    --application
    ---comfigs
    ----application.ini
    ---controllers
    ----ClientsController.php
    ----ErrorController.php
    ----IndexController.php
    ---models
    ----dbgesi.php
    ----Tclients.php
    ---views
    ----helprs
    -----BaseUrl.php
    ----scripts
    -----clients
    ------add.phtml
    ------list.phtml
    -----error
    ------error.phtml
    -----index
    ------index.phtml
    .
    .
    .
    /*======controlleur=======*/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public function addAction() {    		
        		$client = new Model_Tclients();
        		$lc = $client->createRow();
        		file_put_contents('post',print_r($_POST,true));
        		$lc->nom = $this->getRequest()->getParam('nomcli','defnom');
        		$lc->adr = $this->getRequest->getParam('adrcli','defadr');
        		$lc->tel = $this->getRequest()->getParam('telcli','deftel');
        		$lc->mail = $this->getRequest()->getParam('emailcli','defmail');
        		$this->view->resultat = $lc->save(); 
        		$this->view->aler = '<script type="text/javascript">alert("contolleur");</script>';
        		echo 'reponse add';   	
        }
    /*=======moteur ajax========*/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    				$('#bcli').click(
    				function ajcli(){
    					var s = $('#formcli').serialize();
    					var n = $('#nomcli').val(); var a = $('#adrcli').val(); var t = $('#telcli').val(); var m = $('#emailcli').val();  
    					$.post("<?php echo $this->url(array('controller' => 'clients', 'action' => 'add')); ?>",
    							{ nomcli:n, adrcli:a, telcli:t, emailcli:m } ,
    							function (rep){alert(n+" "+a+" "+t+" "+m+"<?php echo $this->url(array('controller' => 'clients', 'action' => 'add')); ?>");});
    					$.ajax({
    						type:'POST',
    						url:"<?php echo $this->url(array('controller' => 'clients', 'action' => 'add')); ?>",
    						datatype:'text',
    						data:{ nomcli:n, adrcli:a, telcli:t, emailcli:m } ,
    						success:function(rep){alert(rep);},	error:function(){alert('erreur serveur');}});
    				});
    /*=======moteur ajax========*/
    /*======formulaire=======*/
    Code html : 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
    <form name="formcli" method="post" action="#">
    				    <table width="200">
    				      <tr>
    				        <td>nom</td>
    				        <td><input type="text" name="nomcli" id="nomcli"></td>
    			          </tr>
    				      <tr>
    				        <td>adresse</td>
    				        <td><input type="text" name="adrcli" id="adrcli"></td>
    			          </tr>
    				      <tr>
    				        <td>telephonne</td>
    				        <td><input type="text" name="telcli" id="telcli"></td>
    			          </tr>
    				      <tr>
    				        <td>email </td>
    				        <td><input type="text" name="emailcli" id="emailcli"></td>
    			          </tr>
    				      <tr>
    				        <td>application</td>
    				        <td><select name="appcli" id="appcli">
    			            </select></td>
    			          </tr>
    				      <tr>
    				        <td colspan="2"><input id="bcli" type="submit" value="enregistrer"/>
    			            <input type="reset" value="effacer"/></td>
    			          </tr>
    			        </table>
    				  </form>

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    bonjour vexa la fonction que tu ma donnée elle fonctionne et la création du fichier texte se fait sous le dossier public, qu'elle est votre constatation ?

Discussions similaires

  1. formulaire php post
    Par musmus dans le forum Langage
    Réponses: 5
    Dernier message: 10/05/2007, 17h32
  2. Réponses: 3
    Dernier message: 09/04/2007, 15h29
  3. [AJAX] Données formulaire en POST non-trasmises
    Par gwinyam dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 08/02/2007, 16h51
  4. Envoi d'un formulaire en POST sur un site distant
    Par malag dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 12/09/2006, 18h06
  5. [MySQL] Envoi d'images par formulaire et post-traitement
    Par mathieu7497 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/04/2006, 13h58

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