Checkboxen überprüfen

Skipped

Grünschnabel
Hallo Freunde,

ich bin gerade an einer Webseite dran, die als "Leitfaden" für eine bestimmte Tätigkeit in meinem Betrieb fungiert.

Es stehen mehrere Arbeitsschritte nacheinander aufgelistet da, am Ende gibt's einen "weiter"-Button *, der eine Funktion aufruft und neue Arbeitsschritte lädt.

Der Code steht in einem PHP-File, der Content ansich wird mit echo ' <html><body>Content bla bla</body></html> '; ausgegeben.

Ich habe nach jedem dieser Arbeitsschritte mithilfe einer Form Checkboxen eingefügt.

Meine Frage nun: Wie kann ich am sinnvollsten sicherstellen, dass der User nur nach checken jeder Checkbox auf den "weiter"-Button klicken kann?

Mein Ansatz: Das via Javascript lösen. Wenn eine/alle Checkbox unchecked ist, den Button deaktivieren. Wenn alles passt, wieder aktivieren.

Wie soll ich die Checkboxen benennen, alle gleich? Ich möchte nach Möglichkeit nur eine JS-Funktion verwenden, habe aber pro Seite mit Arbeitsschritten unterschiedlich viele Arbeitsschritte.

LG, Mike

* EDIT
 
Zuletzt bearbeitet:
Zwei Möglichkeiten:

1.) Mit JavaScript: du könntest z.B. allen Checkboxen eine gemeinsame Klasse zuweisen (class="xyz"), sodass du mi JS die leicht selektieren kannst.

2.) Pack alles in eine <form> und ändere deinen Weiter-Button zu einem Submit-Button. Nun könntest du per PHP prüfen, ob alle nötigen Checkboxen aktiviert wurden.

In deinem Fall würde ich der Einfachkeit halber zu Nummer 1 tendieren.
 
Hallo ComFreek,

mein weiter-Button ist ein Submit-button mit action auf dieselbe Seite.

Habe aber viele Forms.

Ich versuch das mit den Klassen, mal sehn obs was wird!
 
Also, ich wollte erst mal einfach nur eine Checkbox checken, mit "document.getElementById("mycb4").checked = true;"

Schon das funktioniert nicht!

Hier nochmal mein Aufbau sehr vereinfacht dargestellt:

PHP:
<!-- index.php -->
<html>
<head>
             <script type="text/javascript" >
			function check()
		        {
				 document.getElementById("mycb4").checked = true;
			}
	     </script>
</head>
<body>
    <div id="content">
           <?php
             arbeitsschritt1();
               ....
              //  Einige Funktionen, die von einem externen phpfile analysis.php die Arbeitsschritte ausgeben
           ?>
    </div>
</body>
</html>

------------------------------
PHP:
<!-- analysis.php -->
<?php

function arbeitsschritt1()
{
   echo '
           Mach dies, mach das
          <form action="index.php" method="post">
              <input type="checkbox" name="mycb4" value="1">
              <input type="button" value="Check die CB" onClick="check()">
          </form>
    ';
}

?>

-------------------------

Ich denk, das wars so ziemlich. Wenn ich auf den Button drück, passiert nichts. Ein window.alert im <script> - Bereich wird jedoch aufgerufen, d.h. das JavaScript wird erkannt / ausgeführt.

Wahrscheinlich handelt es sich hier um etwas offensichtliches, aber ich komm einfach nicht drauf. lg

EDIT: Habe gerade gesehen, dass ich document.getElementByID verwende. Habs mit getElementByName versucht, funktioniert auch nicht.
 
Zuletzt bearbeitet:
Also, ich wollte erst mal einfach nur eine Checkbox checken, mit "document.getElementById("mycb4").checked = true;"

Der Ansatz ist schonmal richtig.
Wann rufst du die Funktion auf? Nach dem Laden der Website oder davor?

Ist sichergestellt, dass zum Zeitpunkt des Aufrufes die Checkbox im DOM schon geladen ist?

EDIT: Habe gerade gesehen, dass ich document.getElementByID verwende. Habs mit getElementByName versucht, funktioniert auch nicht.
Es heißt getElementById (kleines 'd' am Ende!).
getElementByName kann a) hier nicht funktionieren (filtert nach name-Attribut, nicht nach id) und ist b) falschgeschrieben. Es heißt getElementsByName.
 

Neue Beiträge

Zurück