raikkonentk
Mitglied
Hallo,
ich arbeite an der Verbesserung eines internen Ticketsystems, im Moment speziell an der Auswahl der Empfänger der Tickets.
Struktur der Auswahl aussehen soll:
|- Liste 1
|--- Firma 1
|------ Email 1 von Firma 1
|------ Email 2 von Firma 1
|------ Email n von Firma 1
|--- Firma 2
|------ Email 1 von Firma 2
|------ Email 2 von Firma 2
|------ Email n von Firma 2
|--- Firma n
|------ Email n von Firma n
|- Liste 2
|--- Firma 1
|------ Email 1 von Firma 1
|------ Email 2 von Firma 1
|------ Email n von Firma 1
|--- Firma 3
|------ Email 1 von Firma 3
|------ Email 2 von Firma 3
|------ Email n von Firma 3
|--- Firma n
|------ Email n von Firma n
|- Liste n
|--- Firma n
|------ Email n von Firma n
Beim Laden der Seite sieht man zunächst nur die Namen aller Listen, vor den Namen befindet sich ein "+" zum Aufklappen der Listen und eine Checkbox um alle untergeordneten Elemente zu selektieren.
Das Gleiche gilt auch für die Firmen, die werden beim Aufklappen der jeweiligen Liste sichtbar, haben ein "+" vor dem Namen zum Aufklappen, so dass man die Emailadressen sieht und es befindet sich eine Checkbox vor dem Firmemnamen um alle hinterlegten Emailadressen auf einmal zu selektieren.
Und wenn die Firma "aufgeklappt" ist, kann man natürlich die einzelnen Emailadressen an- und abwählen.
Beispielcode für eine Liste
Das eigentliche Problem ist, dass mir nicht klar ist, wie ich bei der Selektion zwischen Listen und Firmen unterscheiden kann.
Die ID's von Firmen, Listen und Emailadressen können im ungünstigsten Fall alle gleich sein, weil die aus drei verschiedenen Tabellen kommen.
Außerdem kann eine Firma mit verschiedenen Empfängern auch in mehreren Listen auftauchen, so dass ich damit auch schon Probleme hatte.
Am besten wäre es, wenn ich sagen könnte, ich habe <ul> Liste n/Firma n mit dem Namen oder der ID "x" und dann kann ich alle childNodes samt der enthaltenen Checkboxen aktivieren und deaktivieren. Nur leider hat das nicht funktioniert.
Die Funktion "CheckboxenAktivieren(id)" sieht stark vereinfacht, im Moment noch so aus:
(passt glaube ich mittlerweile schon nicht mehr so richtig zu dem obenstehenden HTML-Code)
Kann mir jemand anhand des Codes einen Hinweis geben?
Ich bin auch für komplett andere Denkansätze offen
Danke schonmal,
Grüße
ich arbeite an der Verbesserung eines internen Ticketsystems, im Moment speziell an der Auswahl der Empfänger der Tickets.
Struktur der Auswahl aussehen soll:
|- Liste 1
|--- Firma 1
|------ Email 1 von Firma 1
|------ Email 2 von Firma 1
|------ Email n von Firma 1
|--- Firma 2
|------ Email 1 von Firma 2
|------ Email 2 von Firma 2
|------ Email n von Firma 2
|--- Firma n
|------ Email n von Firma n
|- Liste 2
|--- Firma 1
|------ Email 1 von Firma 1
|------ Email 2 von Firma 1
|------ Email n von Firma 1
|--- Firma 3
|------ Email 1 von Firma 3
|------ Email 2 von Firma 3
|------ Email n von Firma 3
|--- Firma n
|------ Email n von Firma n
|- Liste n
|--- Firma n
|------ Email n von Firma n
Beim Laden der Seite sieht man zunächst nur die Namen aller Listen, vor den Namen befindet sich ein "+" zum Aufklappen der Listen und eine Checkbox um alle untergeordneten Elemente zu selektieren.
Das Gleiche gilt auch für die Firmen, die werden beim Aufklappen der jeweiligen Liste sichtbar, haben ein "+" vor dem Namen zum Aufklappen, so dass man die Emailadressen sieht und es befindet sich eine Checkbox vor dem Firmemnamen um alle hinterlegten Emailadressen auf einmal zu selektieren.
Und wenn die Firma "aufgeklappt" ist, kann man natürlich die einzelnen Emailadressen an- und abwählen.
Beispielcode für eine Liste
Code:
<ul>
<li>
<strong><input type="checkbox" onClick="CheckboxenAktivieren('id_der_liste');" value="1" style="width:auto;"/>Liste n</strong>
<ul name="id_der_liste">
<li>
<input type="checkbox" onClick="CheckboxenAktivieren('id_der_firma');" style="width:auto;"/>Firma 1
<ul name="id_der_firma">
<li>
<input type="checkbox" name="empfaenger[]" value="id_von_emailadresse_1" style="width:auto;"/>Emailadresse 1
</li>
<li>
<input type="checkbox" name="empfaenger[]" value="id_von_emailadresse_2" style="width:auto;"/>Emailadresse 2
</li>
</ul>
</li>
<li>
<input type="checkbox" onClick="CheckboxenAktivieren('id_der_firma');" style="width:auto;"/>Firma 2
<ul name="id_der_firma">
<li>
<input type="checkbox" name="empfaenger[]" value="id_von_emailadresse_1" style="width:auto;"/>Emailadresse 1
</li>
<li>
<input type="checkbox" name="empfaenger[]" value="id_von_emailadresse_2" style="width:auto;"/>Emailadresse 2
</li>
</ul>
</li>
<li>
<input type="checkbox" onClick="CheckboxenAktivieren('id_der_firma');" style="width:auto;"/>Firma n
<ul name="id_der_firma">
<li>
<input type="checkbox" name="empfaenger[]" value="id_von_emailadresse_n" style="width:auto;"/>Emailadresse n
</li>
</ul>
</li>
</ul>
</li>
</ul>
Das eigentliche Problem ist, dass mir nicht klar ist, wie ich bei der Selektion zwischen Listen und Firmen unterscheiden kann.
Die ID's von Firmen, Listen und Emailadressen können im ungünstigsten Fall alle gleich sein, weil die aus drei verschiedenen Tabellen kommen.
Außerdem kann eine Firma mit verschiedenen Empfängern auch in mehreren Listen auftauchen, so dass ich damit auch schon Probleme hatte.
Am besten wäre es, wenn ich sagen könnte, ich habe <ul> Liste n/Firma n mit dem Namen oder der ID "x" und dann kann ich alle childNodes samt der enthaltenen Checkboxen aktivieren und deaktivieren. Nur leider hat das nicht funktioniert.
Die Funktion "CheckboxenAktivieren(id)" sieht stark vereinfacht, im Moment noch so aus:
(passt glaube ich mittlerweile schon nicht mehr so richtig zu dem obenstehenden HTML-Code)
Code:
function CheckboxenAktivieren(field)
{
for(i = 0; i < document.getElementsByTagName("input").length; i++)
{
var box = document.getElementsByTagName("input")[i];
if(box == field)
{
document.getElementsByTagName("input")[i].checked = true;
}
}
}
Kann mir jemand anhand des Codes einen Hinweis geben?
Ich bin auch für komplett andere Denkansätze offen
Danke schonmal,
Grüße
Zuletzt bearbeitet: