Aide html.twig
Résolu
dev_82
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
dev_82 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
dev_82 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à supprimer des comptes en cliquant sur un bouton qui est lié au compte en question.
Hors, lorsque je clique sur un compte cela concerne toujours le 1er compte de la liste et j'ai beau cherché d'où peut venir le problème je ne trouve pas car il n'y a que pour la colonne "supprimer" qui a ce problème.
En effet, je récupère les données du tableau avec une boucle for en TWIG.
Le reste marche très bien mis à part la fonctionnalité supprimer mais ce n'est pas un problème lié à du HTML (je crois).
Voilà le code :
EDIT : Correction des balises de code pour y ajouter la coloration syntaxique.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Sauriez-vous m'aider ? svp
Je cherche à supprimer des comptes en cliquant sur un bouton qui est lié au compte en question.
Hors, lorsque je clique sur un compte cela concerne toujours le 1er compte de la liste et j'ai beau cherché d'où peut venir le problème je ne trouve pas car il n'y a que pour la colonne "supprimer" qui a ce problème.
En effet, je récupère les données du tableau avec une boucle for en TWIG.
Le reste marche très bien mis à part la fonctionnalité supprimer mais ce n'est pas un problème lié à du HTML (je crois).
Voilà le code :
<table id="customers" style="margin-top:40px;width:95% !important;margin-left:auto;margin-right:auto;"> <!-- 1ere ligne du tableau --> <tr> <th>Nom</th> <th>Prenom</th> <th>Adresse email</th> <th>Statut</th> <th>Identification</th> <th>Modifier</th> <th>Supprimer</th> </tr> {% for t_authentification in pagination %} <tr> <td>{{ t_authentification.nom }}</td> <td>{{ t_authentification.prenom }}</td> <td>{{ t_authentification.email }}</td> <td>{{ t_authentification.statut }}</td> <td>Cerbère</td> <td><a href="{{ path('compte_nb', {'id' : t_authentification.id}) }}"><img src="{{ asset('img/edit.png') }}" title="Modifier"></a></td> <td><a class="btn btn-danger" href="#confirm/id={{t_authentification.id}}" onclick="DeleteAccount();"><img src="{{ asset('img/del.png') }}" title="Supprimer"></a> <div id="confirm" hidden style="margin-left:7px;margin-top:5px"> <h6 style="margin-left:15px;margin-bottom:15px">Voulez-vous supprimer {{ (t_authentification.nom) }} {{ (t_authentification.prenom) }} ?</h6> <div class="row"> {{ form_start(formSupp) }} <button type="submit" class="btn btn-secondary" style="margin-left:15px;margin-bottom:15px"><i class="fas fa-check-circle"></i>Supprimer</button> {{ form_end(formSupp) }} <button class="btn btn-secondary" onclick="AbortDelete();" style="margin-left:15px;margin-bottom:15px"><i class="fas fa-times-circle"></i> Annuler</button> </div> </div> </tr> {% endfor %} </table><
EDIT : Correction des balises de code pour y ajouter la coloration syntaxique.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Sauriez-vous m'aider ? svp
9 réponses
Bonjour,
La suppression.. visiblement... se gère dans la fonction javascript
Donc.. sans voir le code concerné... impossible de te répondre.
NB: Pour poster ton code, merci de le faire en utilisant les BALISES DE CODE ... ET en indiquant le langage afin d'avoir la coloration syntaxique.
NB² : Merci de ne pas ouvrir 50 fois la même discussion en doublon sur le forum.
La suppression.. visiblement... se gère dans la fonction javascript
onclick="DeleteAccount();">
Donc.. sans voir le code concerné... impossible de te répondre.
NB: Pour poster ton code, merci de le faire en utilisant les BALISES DE CODE ... ET en indiquant le langage afin d'avoir la coloration syntaxique.
NB² : Merci de ne pas ouvrir 50 fois la même discussion en doublon sur le forum.
Bonjour,
Merci de votre réponse.
Désolé c'est la première que j'utilise ce forum donc c'est pour ca que j'ai poste plusieurs fois le même problème.
Mais en fait, la suppression n'est pas le souci le + important c'est surtout que pour chaque compte il y a une colonne où il y a une icône donc lorsque je clique sur cette icône pour un compte c'est sensé exécuter la division "confirm" pour le compte où j'ai cliqué. Hors, lorsque lorsque je clique sur l'icône de n'importe quelle compte, cela exécute la division "confirm" que pour le 1er compte.
Et la fonction DeleteAccount, c'est :
DeleteAccount () {
Document.getElementById('confirm').hidden=false
}
Merci de votre réponse.
Désolé c'est la première que j'utilise ce forum donc c'est pour ca que j'ai poste plusieurs fois le même problème.
Mais en fait, la suppression n'est pas le souci le + important c'est surtout que pour chaque compte il y a une colonne où il y a une icône donc lorsque je clique sur cette icône pour un compte c'est sensé exécuter la division "confirm" pour le compte où j'ai cliqué. Hors, lorsque lorsque je clique sur l'icône de n'importe quelle compte, cela exécute la division "confirm" que pour le 1er compte.
Et la fonction DeleteAccount, c'est :
DeleteAccount () {
Document.getElementById('confirm').hidden=false
}
D'accord mais pourquoi le "id = {{t_authentification.id}} me renvoie à chaque fois le bon id du compte choisi et comment cela se fait qu'il me renvoie le 1er élément de la page ayant l'id confirm puisque je l'ai mis dans une boucle for en twig qui marche pour les autres colonnes ?
Merci
Merci
{% for t_authentification in pagination %} <tr> <td>{{ t_authentification.nom }}</td> <td>{{ t_authentification.prenom }}</td> <td>{{ t_authentification.email }}</td> <td>{{ t_authentification.statut }}</td> <td>Cerbère</td> <td><a href="{{ path('compte_nb', {'id' : t_authentification.id}) }}"><img src="{{ asset('img/edit.png') }}" title="Modifier"></a></td> <td> <a class="btn btn-danger" href="#confirm/id={{t_authentification.id}}" onclick="DeleteAccount('{{t_authentification.id}}');"> <img src="{{ asset('img/del.png') }}" title="Supprimer"></a> <div id="confirm_{{t_authentification.id}}" hidden style="margin-left:7px;margin-top:5px"> <h6 style="margin-left:15px;margin-bottom:15px">Voulez-vous supprimer {{ (t_authentification.nom) }} {{ (t_authentification.prenom) }} ?</h6> <div class="row"> {{ form_start(formSupp) }} <button type="submit" class="btn btn-secondary" style="margin-left:15px;margin-bottom:15px"> <i class="fas fa-check-circle"></i> Supprimer </button> {{ form_end(formSupp) }} <button class="btn btn-secondary" onclick="AbortDelete('{{t_authentification.id}}');" style="margin-left:15px;margin-bottom:15px"> <i class="fas fa-times-circle"></i> Annuler </button> </div> </div> </td> </tr> {% endfor %}
et côté JS
<script> function DeleteAccount(id) { document.getElementById('confirm_'+id).hidden = false; } function AbortDelete(id) { document.getElementById('confirm_'+id).hidden = true; } </script>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci beaucoup pour votre réponse car je viens d'essayer et ça marche !!!
Dernière question : lorsque j'appuie sur "supprimer" cela veut pas supprimer.
Hors du côté PHP, j'ai fais le nécessaire donc je me demande d'où vient le problème.
Merci de votre réponse encore une fois.
Merci beaucoup pour votre réponse car je viens d'essayer et ça marche !!!
Dernière question : lorsque j'appuie sur "supprimer" cela veut pas supprimer.
Hors du côté PHP, j'ai fais le nécessaire donc je me demande d'où vient le problème.
Merci de votre réponse encore une fois.
Le TWIG sert à cela ici non ?
<div class="row"> {{ form_start(formSupp) }} <button type="submit" class="btn btn-secondary" style="margin-left:15px;margin-bottom:15px"><i class="fas fa-check-circle"></i>Supprimer</button> {{ form_end(formSupp) }} <button class="btn btn-secondary" onclick="AbortDelete('{{t_authentification.id}}');" style="margin-left:15px;margin-bottom:15px"><i class="fas fa-times-circle"></i> Annuler</button> </div>
Je n'avais pas fait gaffe à cette ligne
Donc oui.. ça semble correct.
Par contre... tu ne transmets aucune variable lors de ton submit.
Tu pourrais ajouter un input hidden contenant l' ID à supprimer...
De plus, nous ne savons rien de ton code PHP.. nous ne pouvons donc pas savoir si il est bon ou non.
{{ form_start(formSupp) }}
Donc oui.. ça semble correct.
Par contre... tu ne transmets aucune variable lors de ton submit.
Tu pourrais ajouter un input hidden contenant l' ID à supprimer...
De plus, nous ne savons rien de ton code PHP.. nous ne pouvons donc pas savoir si il est bon ou non.
Mais après je sais pas si ce que j'ai fait en php est suffisant parce que je sais que ça supprime mais peut-être que j'ai oublié quelque chose
Merci de vos réponses.
$formSupp = $this->createFormBuilder() ->getForm(); $formSupp->handleRequest($request); if($formSupp->isSubmitted()) { $em->remove($t_authentification); $em->flush(); return $this->redirectToRoute('compte'); }
Merci de vos réponses.
class CompteController extends AbstractController { private $session; public function __construct(SessionInterface $session) { $this->session = $session; } /** * @Route("/compte/{id}", name="compte_nb") * @Route("/compte", name="compte") */ public function index($id = null, Request $request, EntityManagerInterface $em, t_authentificationRepository $tRep, PaginatorInterface $paginator) { $q = $request->query->get('q'); $pagination = null; if($id == null) { $t_authentification = new t_authentification; }else { $t_authentification = $tRep->findOneBy(['id' => $id]); } $form=$this->createForm(AuthentificationRechercheType::class); //Création d'un formulaire depuis le fichier ExploitantsRechercheType.php $form->handleRequest($request); //Recuperer les requête du formulaire (au moment ou on appuie sur le bouton valider ou la touche entrée). if($form->isSubmitted() && $form->isValid()) { //Si le form est est valide et les champs sont remplis if($form->getData()["nom"]) //si c'est le champs nom on fait une recherche par nom grace au t_exploiantRepository $er { $this->session->set('type', 'nom'); $this->session->set('value', $form->getData()['nom']); } elseif($form->getData()["prenom"]) { $this->session->set('type', 'prenom'); $this->session->set('value', $form->getData()['prenom']); } else { $this->session->set('type', 'all'); } return $this->redirectToRoute('compte'); } $type = $this->session->get('type'); $value = $this->session->get('value'); if($type == 'all') { $queryBuilder = $tRep->Order($q); }else { $queryBuilder = $tRep->getAllByTerm($q, $type, $value); } /*$t_authentification = new t_authentification();*/ $formNewUser = $this->createForm(NouveauProfilType::class, $t_authentification); $formNewUser->handleRequest($request); if($formNewUser->isSubmitted()) { /* dd($t_authentification);*/ $em->persist($t_authentification); $em->flush(); } $formSupp = $this->createFormBuilder() ->getForm(); $formSupp->handleRequest($request); if($formSupp->isSubmitted()) { $em->remove($t_authentification); $em->flush(); return $this->redirectToRoute('compte'); } $pagination = $paginator->paginate ($queryBuilder, $request->query->getInt('page', 1), 20); return $this->render('compte/index.html.twig', [ 'form' => $form->createView(), 'formNewUser' => $formNewUser->createView(), 'pagination' => $pagination, 'id' => $id, 'formSupp' => $formSupp->createView(), ]); } }
Et voilà le formulaire que je récupère :
class NouveauProfilType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('nom', TextType::class) ->add('prenom', TextType::class) ->add('email', EmailType::class) ->add('statut',ChoiceType::class,[ 'choices' => ['utilisateur' => 'utilisateur', 'gestionnaire' => 'gestionnaire', 'consultant' => 'consultant' ] ]) ; }
Pourriez-vous me sire pourquoi la variable "formSupp" ne remplit pas sa fonction, c'est à dire, supprimer un compte.
Voici, le code php :
et voici le code html :
Voici, le code php :
$formSupp = $this->createFormBuilder() ->getForm(); $formSupp->handleRequest($request); if($formSupp->isSubmitted()) { $em->remove($t_authentification); $em->flush(); return $this->redirectToRoute('compte'); }
et voici le code html :
<div class="row"> {{ form_start(formSupp) }} <button type="submit" class="btn btn-secondary" style="margin-left:80px;margin-bottom:15px"><i class="fas fa-check-circle"></i>OUI</button> {{ form_end(formSupp) }} <button class="btn btn-secondary" onclick="AbortDelete('{{t_authentification.id}}');" style="margin-left:10px;margin-bottom:15px"><i class="fas fa-times-circle"></i>NON</button> </div>