2 votes

Comment passer une valeur de la page HTML modèle de Django à AJAX

J'ai été en train de travailler sur cela pendant trop longtemps, car j'introduis laborieusement ajax pour accélérer mon application django. Je n'ai aucune expérience préalable, donc. J'ai une liste déroulante que j'utilise comme visionneuse de notifications et j'utilise la boucle for pour la remplir. Ils partagent tous le même identifiant mais des noms uniques - leurs identifiants d'enregistrement. J'essaie de cliquer sur la notification, puis de charger les enregistrements correspondants en passant son ID à mon fichier views.py. Ci-dessous le code pour ma tentative bidouillée qui n'a pas été fructueuse et qui a pris beaucoup trop de temps.

    function openNotification(){
        $('#ntfy').click(function(e) {
            var acc = $(this).attr('name');
            $.ajax({
                type: "GET",
                url: "{% url 'my_app:notifications' %}",
                dataType: "json",
                async: true,
                data:{csrfmiddlewaretoken :'{{ csrf_token }}',
                     'acc':acc},
                success: function(){
                    alert("yo yoyo");
                    if (data.status == "success"){
                        window.location.href = data.url;
                    }
                    else{
                        alert("une erreur est survenue");
                    }
                }
            });
        });
    }

Et le html se présente comme ceci.

[

Veuillez aider.

](#)

2voto

Anup Yadav Points 1844

[

\===========================================

    $('.ntfy').on('click',function(e) {
        var docnum = $(this).attr('data-docnum'); // or $(this).data('docnum')
        var accountid = $(this).attr('data-accountid'); // or $(this).data('accountid')
        data = {
            "csrfmiddlewaretoken":$("input[name='csrfmiddlewaretoken']").val(),
            "docnum":docnum,
            "accountid":accountid
        }
        $.ajax({
            type: "GET",
            url: "{% url 'rznbldbt_app:notifications' %}",
            dataType: "json",
            async: true,
            data:data,
            success: function(data){
                alert("yo yoyo");
                if (data.status == "success"){
                    window.location.href = data.url;
                }
                else{
                    alert("error occured");
                }
            }
        });
    });

Une autre façon est :

](#)

[\===========================================

    function openNotification(docnum,accountid)
    {
        data = {
            "csrfmiddlewaretoken":$("input[name='csrfmiddlewaretoken']").val(),
            "docnum":docnum,
            "accountid":accountid
        }
        $.ajax({
            type: "GET",
            url: "{% url 'rznbldbt_app:notifications' %}",
            dataType: "json",
            async: true,
            data:data,
            success: function(data){
                alert("yo yoyo");
                if (data.status == "success"){
                    window.location.href = data.url;
                }
                else{
                    alert("error occured");
                }
            }
        });
    }](#)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X