Bonjour,
Voila je rencontre un petit problème avec mon code.
je veux ajouter dans la base a partir d'un formulaire et revoir un message de succées en utilisant l'ajax
NB: j'ai utiliser le bundle JSRoutingBundle
voila le code de ma vue TIWG,
/**
<script src="{{ asset('bundles/js/jquery.min.js') }}"></script>
<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
<script src="{{ asset('bundles/js/script.js') }}"></script>
{{ form_start(form,{'attr': {'id': 'formid'}}) }}
{{ form_row(form.modele) }}
{{ form_row(form.marque) }}
{{ form_row(form.horsepower) }}
{{ form_row(form.ajouter)}}
{{ form_end(form) }}
<div id="returned"></div>
/****
le contenu de script.js
/***
$(document).ready(function(){
var form =$("#formid");
form.submit(function(){
$.ajax({
type: "POST",
beforeSend: function() { $('#returned').html('en charge .....')},
url: Routing.generate('ajouter'),
data: form.serialize(),
error: function() {alert("error")},
success: function(htmlResponse) { $('#returned').html(htmlResponse)}
});
});
});
/****
le contenu de l'action
/***
public function ajouterAction(Request $request)
{
$car = new car();
$form = $this->createForm(carType::class,$car);
$form->handleRequest($request);
if($request->isXmlHttpRequest()) {
$em = $this->getDoctrine()->getManager();
$em->persist($car);
$em->flush();
echo 'element insérer';
}else{
throw new Exception("error");
}
return $this->render('aymenaymenBundle:Default:index.html.twig',array('form'=>$form->createView()));
}
/*********************************************************
et pour finir le routing
/********************************************************
ajouter:
path: /ajouter
defaults: { _controller: aymenaymenBundle:Default:ajouter }
options:
expose: true
/**
mon but c'est d'avoir un petit message de succée dans la balise qui a l'id returned mais au contraire je reçois rien
dans la console j'ai une erreur (POST http://localhost/ajaxsyf/web/app_dev.php/ajouter 500 internal server error)
qu'est ce que je dois changer exactement ?
et merci d'avance