Próbowałem utworzyć stronę internetową, gdzie po otrzymaniu wejścia użytkownika wyświetliby historię wszystkich wejść użytkownika po naciśnięciu przełożenia, jednak działa to zgodnie z przeznaczeniem. Jednak chciałem zaimplementować skrzynkę alarmową, która pokazałaby dodatkowe informacje. Jednak jako wszystko inne jest prawidłowo wydrukowane, ponieważ box alert używa zdarzenia OnClick, wyświetlaby tylko ostatnią próbkę wejścia użytkownika.

<!doctype html>
<html>
<head>
    <title>Enrolment page</title>
</head>
<body>
    {% if all_users %}
        {% for user in all_users %}
            <h1> Hi, {{ user[0] }}) </h1>
            <button onclick="myFunction()">Details</button>
            <script>
                function myFunction() {
                    alert("{{ user[1] }}, {{ user[2] }}");
                }
            </script>
        {% endfor %}
    {%else%}
        No users to show
    {% endif %}
</body>
</html>

W moim kodzie all_users są informacjami z pliku CSV, jednak działa dobrze. Moim jedynym problemem jest Alert nie pokazuje informacji, których chcę. Czy istnieje sposób przechowywania każdego zestawu danych użytkownika w każdym skrypcie, aby wydrukować każdy przycisk, ponieważ wyświetla tylko ostatni zestaw szczegółów użytkownika.

0
Christian Peterson 6 wrzesień 2017, 03:07

2 odpowiedzi

Najlepsza odpowiedź

Możesz wiązać user[0] i user[1] w połączeniu myFunction() jak:

{% for user in all_users %}
    <h1> Hi, {{ user[0] }}) </h1>
    <button onclick="myFunction('{{user[1]}}, {{user[2]}}')">
        Detail
    </button>
{% endfor %}

Następnie zmień funkcję do:

function myFunction(users) {
      alert(users);
}
1
E.K 6 wrzesień 2017, 03:20

Aby to pracować w Jinja2, możesz spróbować użyć zmiennej łańcucha i dołączyć każdą wartość jako w (kod nie testowany):

<!doctype html>
<html>
<head>
    <title>Enrolment page</title>
</head>
<body>
    {% if all_users %}
        {% set AllUserList = "" %}
        {% for user in all_users %}
            {% set AllUserList = AllUserList + user[1] + ", " + user[2] + "\n" %}
            <h1> Hi, {{ user[0] }}) </h1>
            <button onclick="myFunction()">Details</button>
            <script>
                function myFunction() {
                    alert("{{ AllUserList }}");
                }
            </script>
        {% endfor %}
    {%else%}
        No users to show
    {% endif %}
</body>
</html>
0
Tim D 6 wrzesień 2017, 01:59