Partage
  • Partager sur Facebook
  • Partager sur Twitter

Garder mon affichage sur la même page

Sujet résolu
    1 août 2023 à 18:54:35

    Hello ! 

    J'utilise actuellement le framework Django et je bloque sur deux petits points. 

    Actuellement, voici l'affichage de ma page : 

    Lorsque je clique sur le bouton, c'est censé m'afficher les données relatives au domaine renseigné. Sauf que rien ne s'affiche. La page se recharge comme si rien ne s'était passé.

    Voici le code de ma page : 

    <body>
        <nav class="navbar navbar-expand-lg navbar-light bg-light">
          <a class="navbar-brand" href="index.html">HugzyToolbox</a>
          <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
          </button>
          <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav">
              <li class="nav-item">
                <a class="nav-link" href="toolbox/dnslookup.html">DNSLookup</a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="toolbox/spf.html">SPF</a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="toolbox/dateresto.html">Date Restauration MX PLAN Legacy</a>
              </li>
            </ul>
          </div>
        </nav>
    
        <div class="container">
            <div class="row">
                <form method="POST" action="{% url 'search_dns' %}">
                    {% csrf_token %}
                    <div class="col-2">
                        <label for="domain_name" class="form-label">Nom de domaine :</label>
                        <input type="text" id="domain_name" name="domain_name" class="form-control">
                    </div>
                    <button type="submit" class="btn btn-primary ">Chercher</button>
                </form>
            </div>
        </div>
        <div class="container">
            <div class="row">
                <form method ="POST" action="{% url 'copy_content' %}">
                    {% csrf_token %}
                    {% for r in domain  %}
                            <p>{{ r }}</p>
                    <button type="submit">copier dans le presse papier</button>
                    {% endfor %}
                </form>
            </div>
        </div>
    </body>

    Pour la ligne du formulaire ayant l'action action="{% url 'search_dns' %}, elle est censée me rediriger sur la même page : 


    def search_dns(request):
        domain_name = request.POST.get("domain_name")
    
        resultat = DnsLookup.dns_lookup('', domain_name)
    
        return render(request,'toolbox/dnslookup.html', {'domain': resultat})


    Je ne vois pas du tout comment garder mon affichage sur la même page ...


    De plus, si je navigue d'un onglet vers un autre, mon URL garde une partie du précédent et du coup la page passe en erreur. 


    Exemple, je suis sur l'onglet "dnslookup" :


    Si je me rends maintenant sur l'onglet SPF par exemple, mon URL n'est pas correctement pris en compte : 


    J'ai du faire une erreur dans mon fichier urls.py mais je commence avec Django et je ne vois pas quoi faire. 

    Voici mon fichier : 

    from django.contrib import admin
    from django.urls import path
    
    from toolbox.views import index, search_dns, copy_content, onglet_dnslookup, onglet_spf, onglet_date_resto, onglet_index
    
    
    urlpatterns = [
        path("", index),
        path("toolbox/index.html", onglet_index),
        path("toolbox/dnslookup.html", onglet_dnslookup),
        path("toolbox/spf.html", onglet_spf),
        path("toolbox/dateresto.html", onglet_date_resto),
        path("toolbox/dnslookup.html", search_dns, name="search_dns"),
        path("", copy_content, name="copy_content"),
        path('admin/', admin.site.urls),
    ]
    

    Si quelqu'un a une idée je suis preneur ! 



    -
    Edité par Rudeus 1 août 2023 à 18:55:23

    • Partager sur Facebook
    • Partager sur Twitter
      1 août 2023 à 21:23:12

      Bonjour,

      Déplacement vers un forum plus approprié

      Le sujet est déplacé de la section HTML / CSS vers la section Langage Python

      • Partager sur Facebook
      • Partager sur Twitter
        2 août 2023 à 13:28:26

        à priori, pour modifier le contenu de la page sans la recharger, c'est plutôt par des requêtes AJAX (via XMLHttpRequest) qu'il faut passer et non par des form poussés via POST.
        • Partager sur Facebook
        • Partager sur Twitter
          2 août 2023 à 20:03:08

          Oula par contre je ne connais absolument rien à AJAX il va falloir que je fasse quelque recherche du coup ! 

          Si je veux rester sur un form avec POST il faut que j'envoie la réponse sur une autre page du coup je suppose ? 

          Concernant le fait que mon url n'est pas bon vous avez une idée ? 

          • Partager sur Facebook
          • Partager sur Twitter
            2 août 2023 à 22:16:14

            Rudeus a écrit:

            Concernant le fait que mon url n'est pas bon vous avez une idée ? 


            Il y a de bons tutos sur Django dans lesquels on trouve comment faire (comme sur dans ce chapitre du (gros) tuto de base. C'est compliqué, j'en conviens, mais l'idée d'un Django est de proposer un cadre utilisable pour développer rapidement en suivant des règles de construction: difficle de tatonner en suivant ses intuitions.
            • Partager sur Facebook
            • Partager sur Twitter
              3 août 2023 à 17:23:20

              mps a écrit:

              Rudeus a écrit:

              Concernant le fait que mon url n'est pas bon vous avez une idée ? 


              Il y a de bons tutos sur Django dans lesquels on trouve comment faire (comme sur dans ce chapitre du (gros) tuto de base. C'est compliqué, j'en conviens, mais l'idée d'un Django est de proposer un cadre utilisable pour développer rapidement en suivant des règles de construction: difficle de tatonner en suivant ses intuitions.


              Super merci ! Je vais me pencher la dessus et me débrouiller. 

              Merci beaucoup ! 

              • Partager sur Facebook
              • Partager sur Twitter

              Garder mon affichage sur la même page

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown