Bestimmte Checkboxen innerhalb eines Formulares aktivieren

Feely

Mitglied
Tach ! =)

Folgender Sachverhalt:

Ich habe ein Formular für eine Benutzer-Rechte-Verwaltung mit einigen Checkboxen die die jeweleige Berechtigung steuern sollen. Im Aufbau sieht das ganze in etwa so aus:

Code:
<input type="checkbox" name="recht[]" id="kunde" value="kd_insert">
<input type="checkbox" name="recht[]" id="kunde" value="kd_edit">
<input type="checkbox" name="recht[]" id="kunde" value="kd_delete">
...
<input type="checkbox" name="recht[]" id="drucker" value="drucker_insert">
<input type="checkbox" name="recht[]" id="drucker" value="drucker_edit">
<input type="checkbox" name="recht[]" id="drucker" value="drucker_delete">

Wie man sieht ist das Formular quasi in verschiedene "Rubriken" unterteilt. Ich will es nicht zerpflücken da am Ende ein großes Array rauskommt das alle gesetzten Rechte des Benutzers beinhaltet.

Problem:

Ich möchte über jede Rubrik einen Button / Link / Grafik (whatever) setzen mit dem ich alle Checkboxen einer "Rubrik" aktivieren kann. Ich hab bereits verschiedene Javascripte durchprobiert aber das einzige was ich erreicht habe ist, dass sich mit einem Klick alle
Checkboxen aktivieren. So wie ich das sehe richten sich diese Scripte immer nach den Namen der Formular-Elemente..aber nicht nach den ID's.

Ich bin leider nicht sehr Bewand in Sachen Javascript und die Stunde die ich bis jetzt daran getüftelt habe hat mir halt nicht wirklich geholfen. Wenn also jemand einen guten Denkansatz bzw. eine konkrete Lösung für mich hätte... :)

Gruß Feely
 
Klarer Fehler: Eine ID ist immer eindeutig und darf im Dokument dementsprechend auch nur einmal auftauchen! Das macht das Problem leider nicht gerade einfacher...

Ich würde vorschlagen, Du baust einen DIV-Bereich mit der entsprechenden ID für jede einzelnen Kategorie:
Code:
<div id="kunde">
 <input type="checkbox" name="recht[]" value="kd_insert">
 <input type="checkbox" name="recht[]" value="kd_edit">
 <input type="checkbox" name="recht[]" value="kd_delete">
</div>

und baust folgende JS - Funktion:

Code:
function Aktiviere(RubrikID)
{
 var kids = document.getElementsByName('recht[]');
 for (var i=0; i < kids.length; i++) if (kids[i].parent.id == RubrikID)
  kids[i].selected = "selected";
}

Alles ohne Gewähr, da nicht ausprobiert...
 
Ok das mit der ID seh ich ein ;) Es war halt nur Testweise. Zu deinem Vorschlag...Gesagt getan und leider nicht funktioniert. Ich habs testweise in eine normale HTML Seite gesteckt..ohne mein PHP Gedöns..

Das ganze zieht so aus:

Code:
<script language="javascript">
function aktiviere(RubrikID) {
 var kids = document.getElementsByName('recht[]');
 for (var i=0; i < kids.length; i++) if (kids[i].parent.id == RubrikID)
   kids[i].selected = "selected";
}
</script>

<a href="javascript:aktiviere('kunde')">Check</a>

<form name="test" action="gibts_nicht" method="post">

<div id="kunde">
<input type="checkbox" name="recht[]" value="kunde_show" />
<input type="checkbox" name="recht[]" value="kunde_delete" />
</div>

<div id="drucker">
<input type="checkbox" name="recht[]" value="drucker_edit" />
</div>

</form>

Ich bin mir allerdings auch nicht sicher ob ich deine Funktion überhaupt richtig aufrufe ^^
 

Neue Beiträge

Zurück