Mam w formularzu dużą ilość pól typu checkbox drukowanych z PHP. Zawsze, przekazywałem je spowrotem w taki sposób:
<input type="checkbox" <b>name="jezyki[]"</b> value="ang" />
<input type="checkbox" name="jezyki[]" value="ger" />
Dzięki temu wszystko ładnie ląduje w tabeli w PHP.
Chciałem do tego zastosować prosty skrypt który miałby zaznaczać lub odznaczać wszystkie checkbox'y naraz. Np. coś takiego:
Kod
<html>
<head>
<script type="text/javascript">
function zmien(formularz){
if(formularz.check_all.checked) {
zaznacz(formularz)} else {
odznacz(formularz)}}
function zaznacz(formularz){
for (i = 0; i < formularz.jezyki.length; i++){
formularz.jezyki[i].checked=true}}
function odznacz(formularz){
for (i = 0; i < formularz.jezyki.length; i++){
formularz.jezyki[i].checked=false }}
</script>
</head>
<body>
<form name="form1">
<input type="checkbox" name="check_all" onclick="zmien(this.form)" />(zaznacz wszystkie)
<input type="checkbox" name="jezyki" value="ang" />Angieski
<input type="checkbox" name="jezyki" value="ger" />Niemiecki
<input type="checkbox" name="jezyki" value="fr" />Francuski
<input type="checkbox" name="jezyki" value="it" />Włoski
</form>
</body>
</html>
<head>
<script type="text/javascript">
function zmien(formularz){
if(formularz.check_all.checked) {
zaznacz(formularz)} else {
odznacz(formularz)}}
function zaznacz(formularz){
for (i = 0; i < formularz.jezyki.length; i++){
formularz.jezyki[i].checked=true}}
function odznacz(formularz){
for (i = 0; i < formularz.jezyki.length; i++){
formularz.jezyki[i].checked=false }}
</script>
</head>
<body>
<form name="form1">
<input type="checkbox" name="check_all" onclick="zmien(this.form)" />(zaznacz wszystkie)
<input type="checkbox" name="jezyki" value="ang" />Angieski
<input type="checkbox" name="jezyki" value="ger" />Niemiecki
<input type="checkbox" name="jezyki" value="fr" />Francuski
<input type="checkbox" name="jezyki" value="it" />Włoski
</form>
</body>
</html>
I tu pojawia się mój problem. Kiedy zrobię tak:
<input type="checkbox" name="jezyki" .../>
to JavaScript widzi tablicę jezyki, a PHP próbuje wszystkie języki wpisać kolejno do jednej zmiennej.
A kiedy zrobię tak:
<input type="checkbox" name="jezyki[]" .../>
to PHP widzi tablicę jezyki, a JavaScript udaje że nic nie widzi...
Można jakoś napisać funkcję która "zaznaczy wszystkie" checkbox'y tak żeby zachować wszystkie Input'y jako tablicę w PHP?