Mehrere Checkboxen per Button aktivieren

MiLa

Erfahrenes Mitglied
Haudihau :)
Nu mache ich auch mal das JavaScript Forum unsicher.

Ich habe mir ein kleines Rechtesystem gebastelt, nun möchte ich die Rechte wie folgt vergeben:

PHP:
<table>
	<tr>
		<td>Modul</td>
		<td>Registriert</td>
		<td>Hinzufügen</td>
		<td>Bearbeiten</td>
		<td>Löschen</td>
	</tr>
	<tr>
		<td>news</td>
		<td><input  type="checkbox" value="1" name="read_0"></td>
		<td><input  type="checkbox" value="1" name="add_0"></td>
		<td><input  type="checkbox" value="1" name="edit_0"></td>
		<td><input  type="checkbox" value="1" name="del_0"></td>
	</tr>
	<tr>
		<td>gbook</td>
		<td><input  type="checkbox" value="1" name="read_3"></td>
		<td><input  type="checkbox" value="1" name="add_3"></td>
		<td><input  type="checkbox" value="1" name="edit_3"></td>
		<td><input  type="checkbox" value="1" name="del_3"></td>
	</tr>
	<tr>
		<td>forum</td>
		<td><input checked type="checkbox" value="1" name="read_6"></td>
		<td><input  type="checkbox" value="1" name="add_6"></td>
		<td><input  type="checkbox" value="1" name="edit_6"></td>
		<td><input  type="checkbox" value="1" name="del_6"></td>
	</tr>
	<tr>
		<td>voting</td>
		<td><input  type="checkbox" value="1" name="read_8"></td>
		<td><input  type="checkbox" value="1" name="add_8"></td>
		<td><input  type="checkbox" value="1" name="edit_8"></td>
		<td><input  type="checkbox" value="1" name="del_8"></td>
	</tr>
	<tr>
		<td>community</td>
		<td><input checked type="checkbox" value="1" name="read_9"></td>
		<td><input  type="checkbox" value="1" name="add_9"></td>
		<td><input  type="checkbox" value="1" name="edit_9"></td>
		<td><input  type="checkbox" value="1" name="del_9"></td>
	</tr>
	<tr>
		<td>logs</td>
		<td><input  type="checkbox" value="1" name="read_10"></td>
		<td><input  type="checkbox" value="1" name="add_10"></td>
		<td><input  type="checkbox" value="1" name="edit_10"></td>
		<td><input  type="checkbox" value="1" name="del_10"></td>
	</tr>
	<tr>
		<td>settings</td>
		<td><input  type="checkbox" value="1" name="read_12"></td>
		<td><input  type="checkbox" value="1" name="add_12"></td>
		<td><input  type="checkbox" value="1" name="edit_12"></td>
		<td><input  type="checkbox" value="1" name="del_12"></td>
	</tr>
	<tr>
		<td>statistik</td>
		<td><input  type="checkbox" value="1" name="read_17"></td>
		<td><input  type="checkbox" value="1" name="add_17"></td>
		<td><input  type="checkbox" value="1" name="edit_17"></td>
		<td><input  type="checkbox" value="1" name="del_17"></td>
	</tr>
	<tr>
		<td>artikel</td>
		<td><input  type="checkbox" value="1" name="read_13"></td>
		<td><input  type="checkbox" value="1" name="add_13"></td>
		<td><input  type="checkbox" value="1" name="edit_13"></td>
		<td><input  type="checkbox" value="1" name="del_13"></td>
	</tr>
</table>

Jetzt ist es doch ein wenig mühsam, jede Checkbox einzeln anzuklicken, nun wollte ich mal fragen, wie/ob es möglich ist dass man mehrere Checkboxen über einen Button oder eine Checkbox aktiviert?
 
Hallo,

probiers mal mit dieser Funktion:
PHP:
<script>
<!-- 
    function CheckAll()
    {
    var ml = document.messageList;
    var len = ml.elements.length;
    
    for (var i = 0; i < len; i++) 
      {
        var e = ml.elements[i];
        e.checked = true;
      }
    }
 -->
</script>
Es gibt wahrscheinlich noch bessere Möglichkeiten, aber das funktioniert eigentlich ganz gut. ;)

Gruß, Dick
 
Ok, danke...
Werd ich gleich mal ausprobieren.
Aber was ist jetzt, wenn ich meinetwegen alle aus einer Reihe, oder alle aus einer Spalte markieren möchte?
 
Hier ist nochmal was komplettes, was auch direkt wieder alle demarkiert. Die Selektion der zu markierenden Boxen läuft über deren Namen.

Hier findest du etwas darüber, die Namen individuell anzupassen, sodass du deine eigenen Namen verwenden und doch mehrere Boxen gleichzeitig anwählen kannst.
PHP:
<script type="text/javascript" language="JavaScript">
<!-- Begin
var checkflag = "false";
function check(field) {
if (checkflag == "false") {
for (i = 0; i < field.length; i++) {
field[i].checked = true;}
checkflag = "true";
return " keine "; }
else {
for (i = 0; i < field.length; i++) {
field[i].checked = false; }
checkflag = "false";
return " alle "; }
}
//  End -->
</script>

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

  <input type="checkbox" name="list" value="1"> 1<br />
  <input type="checkbox" name="list" value="2"> 2<br />
  <input type="checkbox" name="list" value="3"> 3<br />
  <input type="checkbox" name="list" value="4"> 4<br />
  <input type="checkbox" name="list" value="5"> 5<br /><br />

  <input type="checkbox" value=" alle " onClick="this.value=check(this.form.list)"> Alle

</form>
 
Hallo....

oder probiers hiermit:
Code:
<script type="text/javascript">
<!--
function check_boxes(e,o,id)
{
frm=document.forms[0];
patterns=new Array();
patterns['a']=/^(read|add|edit|del)_\d+$/;
patterns['r']=eval('/^(read|add|edit|del)_'+id+'$/');
patterns['c']=eval('/^'+id+'_\\d+$/');
for(i=0;i<frm.elements.length;++i)
 {
 eName=frm.elements[i].name;
 if(frm.elements[i].type=='checkbox'&&eName.match(patterns[o]))
   {
   frm.elements[i].checked=e;
   }
 }
}
//-->
</script>
die Funktion erwartet 3 Parameter,
  • true/false
    ...jenachdem, ob die boxes an oder ausgeschaltet werden sollen
  • 'a','c','r'
    ....'a'->alle
    ....'r'->Reihe
    ....'c'->Spalte
  • eine ID,
    .....entweder die Nummer der Reihe(wie im Namen der Checkbox angegeben)
    ....oder die Berechtigung,('read','add','edit' oder 'del')
    ist der 2te Parameter "a", notiere hier einfach ''

Beispiele:
  • check_boxes(true,'a','');
    ...alle markieren
  • check_boxes(true,'r',12);
    ...Reihe 12 markieren
  • check_boxes(false,'c','add');
    ...Markierungen in Spalte "hinzufügen" aufheben
  • check_boxes(false,'a','');
    ...alle Markierungen aufheben

ich hoff,'s hilft :)
 
Zuletzt bearbeitet:
Boah, Super! :)
Vielen Dank! :-)

Es funktioniert super...
...bis auf eine Sache: check_boxes(false,'c','add');

Da macht er bei mir nichts, genauso wenn ich das mit true mache. Also wenn ich irgendwas über eine Spalte machen möchte, streikt das ding.
Ich hab leider keinen Fehler gefunden, bin ja auch nicht so der JavaScripter. :D
 
:(
Das ist ja nicht schön, ich kanns mir allerdings auch nicht erklären.
Was für'n Browser benutzt du denn.... bei mir klappts mit allen, die ich installiert habe?

Ich habs zum Vergleich mal hochgeladen....vielleicht hat sich ja nur nen kleiner Tippfehler eingeschlichen.
 
Ich habe mal alles 1:1 kopiert und jetzt funktionierts...

Liegt wohl daran, dass ich die Funktion nicht im Header hatte :rolleyes:

Vielen Dank nochmal...
 
Kann ich den Aufruf auch mit einem Link vornehmen anstatt mit
Code:
<input type="checkbox" value=" alle " onClick="this.value=check(this.form.list)">
Wie würde das aussehen?
 

Neue Beiträge

Zurück