Comment faire pour afficher des alertes ou des messages d'information dans Symfony2 après une réponse du serveur sans recharger la page
Je suis de la construction d'une application de l'administrateur pour les opticiens avec Symfony2. Lorsque l'administrateur ajoute un nouveau client à la base de données, mon contrôleur vérifie si le nom du client est en double ou pas. Je veux afficher une fenêtre de dialogue demandant à l'utilisateur s'il veut ajouter le nouveau client tout de même ou pas. Comment puis-je mettre en œuvre cette? Dois-je utiliser de l'Ajax? Voici un exemple de code à partir de la manette, je suis en utilisant dans ce cas :
public function nouveauAction(Request $request)
{
$form = $this->createFormBuilder()
->add('nom','text')
->add('tel','text', array('label' => 'Nº de téléphone', 'data' => '06'))
->add('email','email', array('label' => 'E-mail', 'required' => false))
->add('date','date', array('label' => 'Date d\'ajout', 'data' => new \DateTime()))
->add('ajouter','submit')
->getForm()
;
$form->handleRequest($request);
if ($form->isValid()){
$client = new Client();
$client->setNomClient($form["nom"]->getData());
$client->setTelClient($form["tel"]->getData());
$client->setEmailClient($form["email"]->getData());
$client->setDateEditionClient($form["date"]->getData());
//just for now (Later we'll retrieve the username from the session)
$em = $this->getDoctrine()->getEntityManager();
$user = (new Utilisateur)->rechercherParPseudo($em, 'admin');
$client->setIdUtilisateur($user);
$em = $this->getDoctrine()->getEntityManager();
if($client->existe($em))
{
//I need a popup message here : The customer you are trying to add already exists""
}
else
{
$request = $this->container->get('request');
if($client->existeNomDouble($em)) //If the customer name is duplicate
{
//I need a popup message here with Yes/No buttons...
}
else
{
//Writing to the database:
$em = $this->getDoctrine()->getEntityManager();
$client->ajouterClient($em);
//A notification to fade in here : "Customer successfully added"
}
}
}
return $this->render('ClientBundle:Client:nouveau.html.twig', array(
'formAjouter' => $form->createView(),
));
}
Vous devez vous connecter pour publier un commentaire.
Essayez ceci :
Contrôleur De Côté :
Vue De Côté (Rameau) :
Demandez-vous si vous devez utiliser ajax pour l'affichage de la popup après avoir un bouton a été cliqué? Si oui, je vous conseille d'utiliser ajax. Voici un Bootstrap bibliothèque que j'ai utilisé avant dans symfony qui doit venir dans maniable pour cela: http://vitalets.github.io/x-editable/