hi im trying dend data method in controller using ajax script :
$("#form_enr").submit(function(ev) { ev.preventdefault(); var ev = $("#myselect").val(); var text =$("#form_text").val(); console.log(text); console.log(ev); $.ajax({ type: "post", url: "{{ path('invitation_enregistrerinv')}}", data : 'ev=' + ev + '&text=' + text, success: function(data){ $('.portlet-body').html(data); } }); });
and use syntax :
public function enregistrerinvaction() { $inv = new invitation(); $em = $this->getdoctrine()->getmanager(); $request = $this->get('request'); $ev = $request->request->get('ev'); $text = $request->request->get('text'); $inv->setcreatedat(new \datetime()); $inv->setupdatedat(new \datetime()); $inv->settext($text); $em->persist($inv); $evenement=$em->getrepository('evevenementbundle:evenement')->findbyid($ev); $evenement=new evenement(); $evenement->setinvitation($inv); $em->persist($evenement); $em->flush(); $this->addflash( 'success', 'les informations ont été enregistrées!' ); return $this->redirect($this->generateurl('invitation_index2')); }
but seems not working, because have error :
an exception occurred while executing 'insert invitation (created_at, updated_at, text) values (?, ?, ?)' params ["2016-08-01 17:12:55", "2016-08-01 17:12:55", null]:
sqlstate[23000]: integrity constraint violation: 1048 le champ 'text' ne peut être vide (null) !!! because text null , , don't it
i believe pass data
wrong in js side. try change data
this:
$.ajax({ (...) data : { ev: ev, text: text } });
(you using post
method, don't pass arguments in query string in method)
edit:
your controller action should like:
public function enregistrerinvaction(request $request){ (...) $text = $request->request->get('text'); (...) }
are sure valid data coming request? (you can try var_dump($_post)
)
Comments
Post a Comment