Ralf König: Mehrfachauswahl (Inhaltsverzeichnis) ...?

Ich habe eine Inhaltsverzeichnis (erstellt über MySQL/PHP/HTML) mit Kapiteln und Unterkapiteln, aus denen der User auswählen soll, aus welchem Bereich(en) er Informationen vorgelegt bekommen möchte.
Nun hätte ich es gerne so, dass wenn ein Kapitel angewählt wird, automatisch alle dazugehörigen Unterkapitel markiert werden ... ähnlich, wie man es für z.b die Auswahl von Backup-Verzeichnissen oder ähnlichem kennt.

Hat jemand einen Tipp dazu, wie ich das hinbekommen kann?

  1. Hallo,

    Hat jemand einen Tipp dazu, wie ich das hinbekommen kann?

    Ja.

    Client-seitig mit Javascript

    oder

    Server-seitig mit PHP

    Konkretere Aussagen lassen sich aufgrund der unkonkreten Sachlage nicht treffen. Voll konkret, nich wahr?

    Oder anders gefragt: Wie ist dein Ansatz bisher und warum funktioniert er nicht?

    Ciao, Frank

    1. Hallo,

      Hallo!

      Hat jemand einen Tipp dazu, wie ich das hinbekommen kann?

      Ja.

      Super!

      Client-seitig mit Javascript

      Ungern, weil nicht jeder ...

      oder

      Server-seitig mit PHP

      Wie genau?

      Hier der Code für mein Inhaltsverzeichnis:
      (Ja, mySQL-injection ist mir ein Bgriff :-)

      ---------
      ?php

      include "db_connection.php";
      echo "<form>";
        $sql="SELECT HKID,HKapitel FROM hkapitel";
        $send=mysql_query($sql) or die(mysql_error());
        while($row=mysql_fetch_assoc($send)) {

      echo '<p><input type="checkbox" name="HKRadio" value="OFF">'.$row['HKapitel'].'</p>';  
      
      	$sql1="SELECT HKID,UKID,UKapitel FROM ukapitel WHERE HKID=".$row['HKID']."";  
      	$send1=mysql\_query($sql1) or die(mysql\_error());  
      	while($row1=mysql\_fetch\_assoc($send1)) {  
      
      echo '<p>&nbsp;&nbsp;&nbsp<input type="checkbox" name="UKRadio" value="OFF">'.$row1['UKapitel'];'</p>';  
      

      }
      }
      echo "</form>";
      ?>
      ---------------

      Oder anders gefragt: Wie ist dein Ansatz bisher und warum funktioniert er nicht?

      Ich vermute, dass es mit PHP/HTML überhaupt nicht machbar ist (ohne ein Form zu senden), dass bei Auswahl eines Kapitels (HKRadio) automatisch die dazgehörigen Unterkapitel (UKRadio) markiert werden??? Würde mich aber freuen, wenn ich mich da irre! :-) ...

      1. Mahlzeit Ralf König,

        Ich vermute, dass es mit PHP/HTML überhaupt nicht machbar ist (ohne ein Form zu senden), dass bei Auswahl eines Kapitels (HKRadio) automatisch die dazgehörigen Unterkapitel (UKRadio) markiert werden???

        Du vermutest richtig.

        Würde mich aber freuen, wenn ich mich da irre! :-) ...

        Wie kommst Du darauf, dass Du Dich irrst? Wie sollte der Webserver (der ja mittels PHP aus der Datenbank irgendwelche Unterkapitel herausfischt, HTML-Code zusammenbastelt und an den Client ausliefert) denn sonst davon erfahren, dass irgendwer in irgendeinem Browser irgendetwas anklickt, wenn Du es ihm nicht mitteilst?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Du vermutest richtig.

          Toll, aber irgendwie auch blöd! :-)

          Wie kommst Du darauf, dass Du Dich irrst?

          Hätte ja sein können, dass es mittel onclick oder irgendwie so doch funktioniert ... daher meine Frage! :-) ...

          Wie sollte der Webserver (der ja mittels PHP aus der Datenbank irgendwelche Unterkapitel herausfischt, HTML-Code zusammenbastelt und an den Client ausliefert) denn sonst davon erfahren, dass irgendwer in irgendeinem Browser irgendetwas anklickt, wenn Du es ihm nicht mitteilst?

          Gute Frage!

          1. "onclick" lässt sich wo einordnen, so rein technologisch? Eher bei Javascript oder eher bei PHP?

            Frank

          2. Mahlzeit Ralf König,

            Wie kommst Du darauf, dass Du Dich irrst?

            Hätte ja sein können, dass es mittel onclick oder irgendwie so doch funktioniert ... daher meine Frage! :-) ...

            Na sicher funktioniert es mit Javascript ... aber das wolltest Du ja nicht.

            Könnte es sein, dass es Dir noch ein wenig an Grundlagenwissen mangelt?

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Na sicher funktioniert es mit Javascript ... aber das wolltest Du ja nicht.

              Ist denn das hier Javascript? *siehe Beispiel
              http://de.selfhtml.org/html/formulare/klickbuttons.htm#
              Hatte gedacht, soetwas funktioniert evtl. auch mit Kontrollkästchen ...

              Könnte es sein, dass es Dir noch ein wenig an Grundlagenwissen mangelt?

              Zugegeben, ja, ich weiß noch nicht alles ;-)

              Wenn nicht ohne möglich, dann bleibt ja nur Javascript - wie würde man es denn damit machen?

              ;-) Ralf

              1. Mahlzeit Ralf König,

                Na sicher funktioniert es mit Javascript ... aber das wolltest Du ja nicht.

                Ist denn das hier Javascript? *siehe Beispiel
                http://de.selfhtml.org/html/formulare/klickbuttons.htm#
                Hatte gedacht, soetwas funktioniert evtl. auch mit Kontrollkästchen ...

                Du kannst also suchen. Du kannst sogar finden. Nur das mit dem Lesen müssen wir wohl noch ein wenig üben ... ;-)

                Die ersten beiden Sätze des von Dir genannten Abschnitts aus SELFHTML:

                "Klick-Buttons haben in reinem HTML keine sinnvolle Funktion. Man kann sie anklicken, so oft man will, und wird dennoch keine Reaktion feststellen. Ihren Sinn haben sie nur im Zusammenspiel mit Script-Sprachen wie JavaScript, um eine Schaltfläche zu definieren, die z.B. auf Klick eine JavaScript-Aktion auslöst."

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Du kannst also suchen. Du kannst sogar finden.

                  Danke! :-)

                  Die ersten beiden Sätze des von Dir genannten Abschnitts aus SELFHTML:

                  "Klick-Buttons haben in reinem HTML keine sinnvolle Funktion. Man kann sie anklicken, so oft man will, und wird dennoch keine Reaktion feststellen. Ihren Sinn haben sie nur im Zusammenspiel mit Script-Sprachen wie JavaScript, um eine Schaltfläche zu definieren, die z.B. auf Klick eine JavaScript-Aktion auslöst."

                  Ich habe das angegebene Beispeil einfach mal getestet (stattdessen scheinbar weniger gelesen) - damit läßt sich der Inhalt einer Textarea verändern - ganz ohne Javascript, oder sehe ich das falsch?

                  1. Hallo,

                    Ich habe das angegebene Beispeil einfach mal getestet

                    Das hier http://de.selfhtml.org/html/formulare/anzeige/input_button.htm?

                    damit läßt sich der Inhalt einer Textarea verändern - ganz ohne Javascript, oder sehe ich das falsch?

                    Das siehst du falsch. Oder wie würdest du

                    this.form.textfeld.value='Text 1 und rückwärts seltsam geschrieben ich bin.'
                      this.form.textfeld.value='Ich bin Text 2 - ganz normal'

                    bezeichnen? Das ist nichts als Javascript, in einem Eventhandler notiert.

                    So long,
                     Martin

                    --
                    "Mutti, hier steht, das Theater sucht Statisten. Was sind Statisten?" - "Das sind Leute, die nur rumstehen und nichts zu sagen haben." - "So wie Papa?"
                    1. Das ist nichts als Javascript, in einem Eventhandler notiert.

                      Danke für den Exkurs! *wieder was gelernt! :-) ...

              2. @@Ralf König:

                nuqneH

                Wenn nicht ohne möglich, dann bleibt ja nur Javascript - wie würde man es denn damit machen?

                http://de.selfhtml.org/javascript/objekte/elements.htm#checked@title=checked setzen.

                Qapla'

                --
                Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
      2. Hi,

        Ich vermute, dass es mit PHP/HTML überhaupt nicht machbar ist (ohne ein Form zu senden), dass bei Auswahl eines Kapitels (HKRadio) automatisch die dazgehörigen Unterkapitel (UKRadio) markiert werden???

        Du müsstest erst mal "markieren" definieren, damit die Frage beantwortbar wird.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Du müsstest erst mal "markieren" definieren, damit die Frage beantwortbar wird.

          Vor dem jeweilen Kapitel und Unterkapiteln sind Kontrollkästchen, die man markieren bzw. auswählen und abwählen kann.

      3. Wieviele "Inhaltsebenen" denkt denn dein Code für das Inhaltsverzeichnis ab?
        Schätzungsweise 2. Aber das nur am Rande.

        oder
        Server-seitig mit PHP

        Wie genau?

        Indem jeder Klick in eine Checkbox von einem Haupt- oder Unterkapitel das "Formular" (welches um die Checkboxen herum ist) wieder zum Server schickt und dort die Werte der Checkboxen entsprechend ausgewertet werden?`

        "Auswerten" heisst an dieser Stelle, dass wenn der Wert einer entsprechend eindeutig benannten Checkbox für ein Hauptkapitel "true" ist, dann das <input type="checkbox" ...> Element für jedes Unterkapitel mit einem passenden Wert (true) sonst (false) vorbelegt wird.

        Ich vermute, dass es mit PHP/HTML überhaupt nicht machbar ist (ohne ein Form zu senden),

        Kann ja gar nicht, da PHP ja nur auf dem entfernten Server ausgeführt wird und auch nur dann, wenn ein Aufruf (GET / POST) an selbigen geht.

        Ergo, was bleibt dir? Javascript. Dafür musst du aber die Beziehung zwischen den Checkboxen von Haupt-/Unterkapitel anhand deren Namen erstellen, erkennen und auswerten.

        Frank

      4. @@Ralf König:

        nuqneH

        Client-seitig mit Javascript

        Ungern, weil nicht jeder ...

        Irrelevant. Es geht nur clientseitig (JavaScript).

        Wenn der Nutzer eine Kapitel angewählt, soll er sofort(!) die Rückmeldung erhalten, dass auch die dazugehörigen Unterkapitel angewählt sind (Häkchen in Checkboxen gesetzt).

        Für Nutzer ohne JavaScript steht die Funktion dann halt nicht zur Verfügung, die müssen dann halt alles einzeln anwählen. Oder sie bekommen nicht die Möglichkeit, Unterkapitel an- und abzuwählen, sondern nur die Hauptkapitel.

        Qapla'

        --
        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
  2. Hat jemand einen Tipp dazu, wie ich das hinbekommen kann?

    Also, mit Javsscript!

    Kann mir jemand sagen, wie?
    Oder mit welchen/m Suchwort/en ich googeln sollte?

    1. Hi,

      Also, mit Javsscript!

      Kann mir jemand sagen, wie?

      Mit DOM-Methoden.

      Oder mit welchen/m Suchwort/en ich googeln sollte?

      SELFHTML hat ein gutes JavaScript-Kapitel.

      MfG ChrisB

      --
      “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]