IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Rafraichir une liste mais pas son formulaire


Sujet :

JavaScript

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut Rafraichir une liste mais pas son formulaire
    Bonjour à tous,

    Dans un projet Symfony/JS/Ajax j'ai créé un simple formulaire avec un input de saisie + le bouton de submit correspondant et en dessous de celui-ci doit s'afficher la liste des éléments existants en bdd retournés par ma requête Ajax (fetch)...

    Tout fonctionne coté code excepté le fait que je voudrais que la liste sous l'input s'actualise sans que le formulaire renvoie des données ni qu'il n'y ait des messages avertissant le renvoi de requêtes par certains navigateurs...

    J'ai essayé en intégrant "e.preventDefault()" mais rien y fait la page entière est rafraîchie au lieu de seulement ma liste d'items...

    Quelle serait la stratégie à adopter svp ?

    Merci d'avance

    Main.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    window.onload = () => {
     
        const tblMarques = document.getElementById('tblMarques')
     
        tblMarques.addEventListener('click', e => {
            e.preventDefault
            if (e.target.id === "btn-supprimer-marque") {
                if (confirm("Etes vous sûr de vouloir effacer cette marque de véhicule ?.")) {
                    const id = e.target.getAttribute('data-id')
     
                    fetch(`/supprimer/${id}`, {
                        method: 'DELETE'
                    }).then(res=>window.location.reload(true))
                    .catch(error =>error.message)
                }
            }
        })
    }

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 952
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 952
    Points : 44 069
    Points
    44 069
    Par défaut
    Bonjour,
    Quelle serait la stratégie à adopter svp ?
    ne pas demander le rechargement de la page au retour de la requête donc à traiter dans ton fetch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fetch(`/supprimer/${id}`, {
        method: 'DELETE'
      })
      .then((response) => response.json())
      .then((datas) => {
        // construction de la liste ici
      })
      .catch(error => error.message)

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut
    Merci pour la réponse NoSmoking...

    Si je comprends bien il faut construire la liste de résultats en JS sans utiliser TWIG ?

    Pour obtenir la liste des valeurs restantes ne doit on pas faire un autre fetch sur un autre contrôleur ?

    Bien évidement la solution de fainéant serait de séparer le formulaire de la liste

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 952
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 952
    Points : 44 069
    Points
    44 069
    Par défaut
    Si je comprends bien il faut construire la liste de résultats en JS sans utiliser TWIG ?
    rien ne t'empêches de construire, côté serveur, du HTML plutôt que du JSON, ma préférence, mais on s'en fout un peu, restant au retour JSON plus light !

Discussions similaires

  1. [V8] Champ "sent" coché en vue liste mais pas en vue Formulaire :/
    Par Metalfourbe dans le forum Odoo (ex-OpenERP)
    Réponses: 2
    Dernier message: 26/03/2015, 14h46
  2. Réponses: 3
    Dernier message: 01/02/2008, 13h29
  3. Réponses: 4
    Dernier message: 07/01/2008, 23h48
  4. Réponses: 6
    Dernier message: 13/06/2007, 09h05
  5. Rafraichir une liste deroulante dans un formulaire
    Par hellosct1 dans le forum IHM
    Réponses: 2
    Dernier message: 09/01/2007, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo