Autor | Zpráva | ||
---|---|---|---|
Stepanka Profil * |
#1 · Zasláno: 24. 11. 2008, 11:43:10
Ahoj,
prosím mohl by mi někdo poradit s jedním problémem? Mám takovou velkou tabulku checkboxů ve formuláři: $k=0; while ($row = mysql_fetch_array($query)) { echo '<tr> <td onclick="check(\'a'.$k.'\')"><input type="checkbox" onclick="check(\'a'.$k.'\')" id="a'.$k.'" name="id['.$k.']" value="'.$row['id'].'"></td> <td onclick="check(\'b'.$k.'\')"><input type="checkbox" onclick="check(\'b'.$k.'\')" id="b'.$k.'" name="login['.$k.']" value="'.$row['login'].'"></td> <td onclick="check(\'c'.$k.'\')"><input type="checkbox" onclick="check(\'c'.$k.'\')" id="c'.$k.'" name="name['.$k.']" value="'.$row['name'].'"></td> <td onclick="check(\'d'.$k.'\')"><input type="checkbox" onclick="check(\'d'.$k.'\')" id="d'.$k.'" name="surname['.$k.']" value="'.$row['surname'].'"></td> <td onclick="check(\'e'.$k.'\')"><input type="checkbox" onclick="check(\'e'.$k.'\')" id="e'.$k.'" name="email['.$k.']" value="'.$row['email'].'"></td> <td onclick="check(\'f'.$k.'\')"><input type="checkbox" onclick="check(\'f'.$k.'\')" id="f'.$k.'" name="country['.$k.']" value="'.$row['country'].'"></td> <td onclick="check(\'g'.$k.'\')"><input type="checkbox" onclick="check(\'g'.$k.'\')" id="g'.$k.'" name="affiliation1['.$k.']" value="'.$row['affiliation1'].'"></td> <td onclick="check(\'h'.$k.'\')"><input type="checkbox" onclick="check(\'h'.$k.'\')" id="h'.$k.'" name="affiliation2['.$k.']" value="'.$row['affiliation2'].'"></td> <td onclick="check(\'i'.$k.'\')"><input type="checkbox" onclick="check(\'i'.$k.'\')" id="i'.$k.'" name="position['.$k.']" value="'.$row['position'].'"></td> <td onclick="check(\'j'.$k.'\')"><input type="checkbox" onclick="check(\'j'.$k.'\')" id="j'.$k.'" name="departure_from['.$k.']" value="'.$row['departure_from'].'"></td> <td onclick="check(\'k'.$k.'\')"><input type="checkbox" onclick="check(\'k'.$k.'\')" id="k'.$k.'" name="departure_to['.$k.']" value="'.$row['departure_to'].'"></td> <td onclick="check(\'l'.$k.'\')"><input type="checkbox" onclick="check(\'l'.$k.'\')" id="l'.$k.'" name="vegetarian['.$k.']" value="'.$row['vegetarian'].'"></td> <td onclick="check(\'m'.$k.'\')"><input type="checkbox" onclick="check(\'m'.$k.'\')" id="m'.$k.'" name="special_wishes['.$k.']" value="'.$row['special_wishes'].'"></td> <td onclick="check(\'n'.$k.'\')"><input type="checkbox" onclick="check(\'n'.$k.'\')" id="n'.$k.'" name="participation['.$k.']" value="'.$row['participation'].'"></td> <td onclick="check(\'o'.$k.'\')"><input type="checkbox" onclick="check(\'o'.$k.'\')" id="o'.$k.'" name="authors['.$k.']" value="'.$row['authors'].'"></td> <td onclick="check(\'p'.$k.'\')"><input type="checkbox" onclick="check(\'p'.$k.'\')" id="p'.$k.'" name="title['.$k.']" value="'.$row['title'].'"></td> <td onclick="check(\'q'.$k.'\')"><input type="checkbox" onclick="check(\'q'.$k.'\')" id="q'.$k.'" name="doc['.$k.']" value="'.$row['doc'].'"></td> <td onclick="check(\'r'.$k.'\')"><input type="checkbox" onclick="check(\'r'.$k.'\')" id="r'.$k.'" name="pdf['.$k.']" value="'.$row['pdf'].'"></td> <td onclick="check(\'s'.$k.'\')"><input type="checkbox" onclick="check(\'s'.$k.'\')" id="s'.$k.'" name="tex['.$k.']" value="'.$row['tex'].'"></td> </tr>'; $k++; jejíž řádky se tvoří v cyklech. A já bych potřebovala, aby při kliknutí na buňku <td> se buňka obarvila a při opětovném kliknutí, aby se odbarvila. A zároveň, aby buňka měnila barvičku i při přejetí myší přes tuto buňku. JS funkce vypadá zatím takto: function check(id) { jm=document.getElementById(id); if (jm.checked==1) { jm.checked=0; } else { jm.checked=1; } } Vrtám se v tom už od včerejšího odpoledne, ale výsledek žádný. Help please... Děkuju |
||
bohyn Profil |
#2 · Zasláno: 24. 11. 2008, 12:37:06
Prepinani checkboxu nech na browseru, u JS vznikaji problemy s probublavanim a vicenasobnym volanim fce na prepinani
na checkbox dej onclick="check(this);" fce na obarveni bunky function check(obj) { // tusim ze v dobe udalosti onclick jeste neni checkbox // prepnuty (takze kdyz zaskrtavas tak je false) if (obj.checked == true) { // odskrtnuti obj.parentNode.style.backgroundColor = "red"; } else { // zaskrtnuti obj.parentNode.style.backgroundColor = "blue"; } } |
||
Stepanka Profil * |
#3 · Zasláno: 24. 11. 2008, 13:51:56
bohyn
Aha, super, děkuji, funguje to pěkně.. Ale ještě mám před každým <tr> (před každým začátkem nového řádku) u tabulky jeden checkbox, který mi při kliknutí označí celý tento řádek checkboxů. $k=0; $n=0; while ($row = mysql_fetch_array($query)) { echo '<tr id="g'.$n.'"> <td><label for="x'.$n.'" style="width:100%;height:100%;display:block;"><nobr><input type="checkbox" id="x'.$n.'" onclick="SelectAllFromGroup(this.checked, \'g'.$n.'\')" /> '.$row['name'].' '.$row['surname'].'<nobr></label></td> ....Všechny následující buňky <td>.... A když na tento checkbox kliknu, normálně se mi přebarví všechny <td> buňky v řádku na modrou, ale přebarví se i ta buňka pro označení všech. A to nechci, ta by mělo zůstat bílá. Nevěděl by někdo, jak na to? Zkoušela jsem přiřadit tomuto checkboxu NAME 'xxx' a pak v JS testovat - pokud není NAME checkboxu 'xxx', tak obarvi. Ale nejde mi to.. JS pro funkci obarvení všech je takováto: function SelectAllFromGroup( state, gID ) { var group = document.getElementById( gID ); var inputs = group.getElementsByTagName( 'input' ); for ( var i = 0; i < inputs.length; i++ ) { if ( inputs[i].type == 'checkbox' ) { inputs[i].checked = state; inputs[i].parentNode.style.backgroundColor = "#99CCFF"; if (inputs[i].checked == false) { inputs[i].parentNode.style.backgroundColor = "white"; } } } } |
||
bohyn Profil |
#4 · Zasláno: 24. 11. 2008, 14:07:01 · Upravil/a: bohyn
for ( var i = 1; i < inputs.length; i++ ) {...} Edit: zacinej az od druheho inputu |
||
Stepanka Profil * |
#5 · Zasláno: 24. 11. 2008, 14:54:53
bohyn
Taky mě to mohlo napadnout.. :-) .. Děkuju moc. |
||
Časová prodleva: 17 let
|
0