Ankündigung

Einklappen
Keine Ankündigung bisher.

JS-Script innerhalb Datei wird ausgeführt, mittels Einbindung aus anderer Datei nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JS-Script innerhalb Datei wird ausgeführt, mittels Einbindung aus anderer Datei nicht

    Folgender Code läuft problemlos durch

    PHP-File:
    PHP-Code:
    <form id="computerDeleteForm" action="computerDelete" method="post">
        <input type="hidden" name="delete" value="">
         <input type="hidden" name="computerID[]" value="<?= htmlspecialchars($computer->id?>">
    </form>
    <button onclick="confirmComputerDelete()">
        <i class="bi bi-trash-fill"></i> Eintrag löschen
    </button>

    <script>
    function confirmComputerDelete()
    {
        Swal.fire({
            title: '',
            html: "Wirklich löschen?",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonText: 'Ja',
            confirmButtonColor: '#ff4b4b',
            cancelButtonText: 'Nein',
            reverseButtons: false
        }).then((result) => {
            if (result.isConfirmed) {
                document.getElementById("computerDeleteForm").submit();
            }
        })
    }
    </script>
    [...]
    <?php
    include("../view/layout/footer.php");
    ?>
    Footer-PHP:
    PHP-Code:
    <script src="<?php __DIR__ ?>/itportal/public/js/sweetalert2.all.min.js"> </script>
    Folgender Code, bzw. Abwandlungen davon funktionieren nicht:

    PHP-File:
    PHP-Code:
    <form id="computerDeleteForm" action="computerDelete" method="post">
        <input type="hidden" name="delete" value="">
        <input type="hidden" name="computerID[]" value="<?= htmlspecialchars($computer->id?>">
    </form>
    <button onclick="confirmComputerDelete()"><i class="bi bi-trash-fill"></i>
        Eintrag löschen
    </button>
    [...]
    <?php
    include("../view/layout/footer.php");
    ?>
    sweetalert2.function.js:
    Code:
    function confirmComputerDelete()
    {
        Swal.fire({
            title: '',
            html: "Wirklich löschen?",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonText: 'Ja',
            confirmButtonColor: '#ff4b4b',
            cancelButtonText: 'Nein',
            reverseButtons: false
        }).then((result) => {
            if (result.isConfirmed) {
                document.getElementById("computerDeleteForm").submit();
            }
        })
    }
    Footer-PHP:
    PHP-Code:
    <script src="<?php __DIR__ ?>/itportal/public/js/sweetalert2.function.js"> </script>
    <script src="<?php __DIR__ ?>/itportal/public/js/sweetalert2.all.min.js"> </script>
    Kann mir bitte jemand erklären, wo das problem liegt? Es ist vollkommen egal, wie ich die Datei einbinden, ob weiter unten, im Header, ob mit <script> in der Js-Datei oder ohne, alles egal.
    PHP 8.3
    MariaDB 10.6
    Symfony 6.4 (LTS)

  • #2
    Das __DIR__ enthält einen Dateipfad und macht in einem src-Attribut überhaupt keinen Sinn.

    Außerdem solltest du dir bei JavaScript-Problemen den erzeugten HTML-Code anschauen.

    "funktioniert nicht" ist zudem keine sinnvolle Problembeschreibung. Was ergibt das Debugging im Browser?

    Kommentar


    • #3
      Ich habe das nun mit include() gelöst, aber ich kapiere nicht, warum das Einbinden der Datei sweetalert2.all.min.js mittels <script> funktioniert und bei der Datei sweetalert2.function.js nicht.
      PHP 8.3
      MariaDB 10.6
      Symfony 6.4 (LTS)

      Kommentar


      • #4
        Zitat von hellbringer Beitrag anzeigen
        "funktioniert nicht" ist zudem keine sinnvolle Problembeschreibung. Was ergibt das Debugging im Browser?
        Dafür gibts die Entwicklertools des Browsers, dort solltest du recht schnell sehen was nicht geht und weshalb.

        Kommentar


        • #5
          Achso: Ich hatte vergessen zu sagen was nicht funktionierte. Ganz einfach: Die Dialogbox (Sweet Alert 2) wurde gar nicht erst angezeigt.Button waren ohne Funktion.
          PHP 8.3
          MariaDB 10.6
          Symfony 6.4 (LTS)

          Kommentar


          • #6
            Ist halt immer noch die Frage, was das Debugging im Browser ergibt. Was sagt die Konsole und der Netzwerkprofiler dazu?

            Kommentar


            • #7
              Das über include zu machen ist Unsinn, für das gibt es den Script-Tag.

              Kommentar

              Lädt...
              X