Javascript Problem

Megaman2044

Lt. Junior Grade
Registriert
Feb. 2005
Beiträge
365
Servus Jungs,

ich habe mir mal eine Funktion zusammen gestellt, dass man alle Checkboxen makieren kann:

Funktion:

code:
function Select(form,checked)
{
for(var i=0;i<document.form.elements.length;i++)
{
if(document.form.elements.type == "checkbox")
{
document.form.elements.checked = checked;
}
}
}



Ausgeben will ich es mit

code:


<a href="java script:Select('matches',true)">Alle auswählen</a>[/CODE]

Aber irgendwie funktioniert es nicht so recht. Wo ist der fehler ?
 
Code:
<form id="form1" name="form1" method="post" action="">
  <label>
  <input type="checkbox" name="checkbox1" value="checkbox" />
    1</label>
  <label> <br />
  <input type="checkbox" name="checkbox2" value="checkbox" />
  2</label></form>
<script>
function Select(form,checked)
{
for(var i=0;i<document.forms[0].elements.length;i++)
{
if(document.forms[0].elements[i].type == "checkbox")
{
document.forms[0].elements[i].checked = checked;
}
}
}
</script>
<a href="javascript:Select('matches',true)">Alle auswählen</a>

Dieser Code funktioniert bei mir im Firefox. Das Problem lag beim document.form da muss angegeben werden, welches form des document.(bei mir halt einfach das erste, deshalb index 0).

Du hast da noch zwei ungenutzte Parameter für die Methode Select. Wahrscheinlich wolltest Du damit das form wählen und angeben ob checked oder nicht. Geht so aber nicht. Studier noch ein wenig, Du bist nahe dran. :evillol:
 
Habe es nun hinbekommen kannst du mir vielleicht auch bei einer foreach abfrage helfen ?
 
bei checkboxen habe ich ein array und den muss ich ja mit foreah ausgeben. Bis jetzt habe ich das:

PHP:
 foreach($_POST['matches[]'] as $test) {
                 echo "Der Wert ist ".$_POST['matches[]']."<br />\n";
                   }

wo is da der fehler ??
 
Code:
[COLOR=#000000][COLOR=#0000BB]$_POST[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'matches[]'[/COLOR][COLOR=#007700]][/COLOR][/COLOR]

Das ist nicht korrekt. matches[] müsste ein Formularfeld sein, was ich annehme nicht der Fall ist.

als Idee:

Code:
<?php
  foreach ([COLOR=black]$_POST[/COLOR] as $key => $value) {
   [COLOR=#000000][COLOR=#007700]echo [/COLOR][COLOR=#DD0000]"Der Wert von " . $key . "ist "[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]$value[/COLOR][COLOR=#007700].[/COLOR][COLOR=#DD0000]"<br />\n"[/COLOR][COLOR=#007700];[/COLOR][/COLOR]
   }
?>
 
matches[] heißt jede Checkbox nur jede hat einen anderen value also erstelle ich durch das [] ein array und wenn ich print_r($-POST['matches']); mache gibt er mir den array aus.
 
PHP:
foreach($_POST['matches[]'] as $test) {
                 echo "Der Wert ist ".$test."<br />\n";
                   }

Wenn du sagst $_POST['matches[]'] soll in der foreach-schleife als $test gehandelt werden, dann musst du auch $test zur ausgabe nutzen..
versuch es mal so, ansonsten könnte ich mir vorstellen, dass es wegen dem array ( matches[] ) nicht klappt... bzw weil alles checkboxen den gleichen namen haben..
 
sou post muss so sein $_POST['matches'] diese klammer werden beim ausgehen net mehr benutzt wel die klammer [] schon den array erzeugen.
 
Zurück
Oben