2017-09-19 1 views
0

mon appel ajax passe les données suivantes:Get params de l'Ajax d'appel dans le contrôleur

var quoteParams ={check:true,startDate:date} 
$.ajax({ 
     type: "POST", 
     url: "check/save", 
     data: {orderForm : gatherOrderDetails(), quoteForm : quoteParams } ,  // GatherORderDetails will get all the form input values from a form 


     success: function(msg) { 
      alert(msg.d); 
     }, 
     error: function(msg) { 
     alert('error'); 
     } 

    }); 

Donc, dans mon contrôleur je veux obtenir le « bon de commande » et « quoteForm » comme objet de la classe class.The sont classe orderssForm et classe quotesForm

def save(ordersForm orderForm,quotesForm quoteForm){ 
//now i need to save all the details obtained from 'orderform' and 'quoteform' after procerssing them in database. 

} 

Mais j'obtiens l'erreur que les params est invalide.

+0

juste modifié. –

+0

Quelles sont les valeurs des données que vous passez par ajax? – user615274

Répondre

1

Il suffit de définir votre action de sauvegarde comme ceci:

def save() { 
    // do stuff with orderForm 
    params.orderForm 

    // do stuff with quoteForm 
    params.quoteForm 
} 

Jetez aussi un coup d'œil à data binding qui peut simplifier massivement le côté de la persistance des choses.

Vous ne savez pas exactement ce que fait votre fonction javascript gatherOrderDetails(), mais si vous avez simplement besoin de soumettre tous les éléments de formulaire, vous pouvez utiliser serialize par exemple.

var data = $('form').serialize(); 
+0

Je viens d'utiliser le param et ensuite fait l'instace du nouvel objet de classe –

0

Je dirais, vous devez accéder à ce via request.JSON:

def save() { 
    def json = request.JSON 
    doSomething json.orderForm 
    doSomethingElse json.quoteForm 
}