2009-06-23 6 views
0

J'utilise le plugin Form de JQuery .. J'ai ajouté le fichier js de Form plugin.Psting les données de formulaires avec JQuery Form Plugin au contrôleur cakephp

Déjà une forme est dans mon code..beforeSubmit avertit correctement les contenus de forme actuelle, je veux cette valeur dans après mon serverside..I essayé avec ce qui suit, mais ne fonctionne pas ...

Mon code est

<?php echo $form->create('Result',array('action'=>'submit'));?> 
//some input text fields,texarea fields 
<?php echo $form->end('submit');?> 

<script> 
    $(document).ready(function(){ 
    var options = { 

    beforeSubmit: showRequest, // pre-submit callback 
    success:  showResponse, // post-submit callback 
    url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1", 
    type: 'POST', 
    resetForm: true  // reset the form after successful submit 

}; 


$('#ResultSubmit1Form').submit(function() { 

    $(this).ajaxSubmit(options); 


    return false; 
}); 


});//ready 

    // pre-submit callback 
function showRequest(formData, jqForm, options) { 

var queryString = $.param(formData); 


alert('About to submit: \n\n' + queryString); 

    $.ajax({ 
     type: "POST", 
    url: "http://localhost/cake_1.2.1.8004/index.php/results/submit1", 
    data: "str="+queryString, 

    success: function(msg){ 
    alert("Data Saved: " + msg); 
    } 

     }); 


return true; 
} 

    // post-submit callback 
    function showResponse(responseText, statusText) { 


alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
    '\n\nThe output div should have already been updated with the responseText.'); 
} 

Et dans mon contrôleur CakePHP

<?php 
class ResultsController extends AppController 

{

var $name = 'Results'; 
var $helpers=array('Html','Ajax','Javascript','Form'); 
    var $components = array('RequestHandler','Email'); 
    var $uses=array('Form','User','Attribute','Result'); 
function submit($id = null) 
{ 

    $str=$_POST['str']; 
echo "POSTED value ".$str; 

} 

}

Répondre

2

Essayez d'utiliser une URL relative pour le paramètre URL:

url: "/cake_1.2.1.8004/index.php/results/submit", 

serait également une bonne idée de faire écho à un texte du côté du serveur juste pour se assurer Ce n'est pas la sortie du serveur qui échoue.

EDIT: Je peux voir que vous le faites déjà, désolé n'a pas remarqué.

+0

ya J'ai essayé avec l'URL que vous avez donner .. En fait pour la sortie eg..My de Querystring sera _method = POST & nom1 = valeur1 & nom2 = valeur2 Mais maintenant que _method = POST est renvoyé en écho ... – useranon

Questions connexes