Maison  >  Questions et réponses  >  le corps du texte

Mettre à jour 'div' après la requête ajax

<p>C'est mon premier projet dans Django. Je suis nouveau sur Django, ajax et javascript. Je dois envoyer des données au modèle jinja après avoir fait une requête ajax. </p> <p>Mon index.html est le suivant :</p> <pre class="brush:php;toolbar:false;">{% if data %} <p>{{data.title}}</p> <p>{{data.price}}</p> {% endif %}</pre> <p>Mon javascript est le suivant :</p> <pre class="brush:php;toolbar:false;"><script> $.ajax({ tapez : "POST", url : "/", // Remplacer par l'URL de la vue actuelle données: { valeur_entrée : "test", csrfmiddlewaretoken : "{{ csrf_token }}" }, succès : fonction (réponse) { title = réponse // Après la requête, la réponse deviendra { "data" : {"title":"t1", "price":20} } }, erreur : fonction() { console.log("Erreur") } }); <script></pre> <p>Je ne sais pas si c'est possible. Certaines personnes utilisent element.innerHTML pour mettre à jour, mais je dois l'envoyer au format jinja. Merci</p>
P粉891237912P粉891237912430 Il y a quelques jours401

répondre à tous(1)je répondrai

  • P粉403804844

    P粉4038048442023-08-18 10:45:59

    Vous avez deux options ici, selon vos préférences.

    1. Renvoyer un modèle au lieu de JSON L'idée ici est de générer le modèle côté serveur, puis de renvoyer le code HTML généré à l'appelant AJAX. Le succès d'Ajax consiste donc simplement à ajouter ce fragment HTML au bon emplacement.

    2. Rendu div en JS Si vous disposez uniquement d'une stratégie JSON ou utilisez DRF, le seul moyen est d'utiliser une boucle pour parcourir les éléments reçus et générer le code HTML équivalent, puis de l'ajouter au document.

    Vous ne pouvez pas mettre JinJa sur la même page car lorsque vous générez la page pour la restituer, vous n'avez pas encore reçu les données.

    répondre
    0
  • Annulerrépondre