SELFHTML Forum Doku Wiki Blog

Forumsarchiv 2002, März
Abfragen ob ein Array leer ist

archivierte Beiträge lesen

  1. JAVASCRIPT Abfragen ob ein Array leer ist Werner 06. 03. 2002, 09:23

Abfragen ob ein Array leer ist

Werner 06. 03. 2002, 09:23

Hallo,

ich habe folgenden HTML Code:

<INPUT type="checkbox" "name="test[]">


Wie kann ich mit Javascript abfragen ob test[] leer ist?


Werner

Abfragen ob ein Array leer ist

Thomas Meinike 06. 03. 2002, 09:40

Hallo,

> ich habe folgenden HTML Code:

> <INPUT type="checkbox" "name="test[]">


> Wie kann ich mit Javascript abfragen ob test[] leer ist?

test[] ist Client-seitig kein Array, sondern nur der Bezeichner fuer dieses INPUT-Feld bzw. weitere.

In JavaScript kann man auf alle Felder mit diesem "Sammelnamen" so zugreifen (bezogen auf das erste Formular):

document.forms[0].elements["test[]"][index ab 0].eigenschaft
oder
document.forms["formularname"].elements["test[]"][index ab 0].eigenschaft

Erst im (vermutlich bei action angegebenen) PHP-Script wird das Array $test[] erhalten und mittels count($test) kann die Anzahl der Arrayelemente bestimmt werden.

BTW: Vor name ist ein " zuviel.

MfG, Thomas

Abfragen ob ein Array leer ist

Thomas Meinike 06. 03. 2002, 09:56

Nachtrag:

Wenn es darum gehen sollte, heraus zu finden, wieviele Checkboxen aktiviert sind, dann probiere es so:

<form action="">
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="button" value="Test" onclick="var j=0;d=document.forms[0].elements['test[]'];for(i=0;i<d.length;i++){if(d[i].checked)j++;}alert('Aktivierte Checkboxen: '+j)">
</form>

MfG, Thomas

Abfragen ob ein Array leer ist

Werner 06. 03. 2002, 10:03

Hallo Thomas,

vielen Dank. Ich blicke aber noch nicht ganz durch. Vielleicht kannst Du dir das ja mal ansehen:

        <TR>
            <TD class="detail">
                    <?php

                    foreach ($aTest["company"] as $key => $value) {
                        if ($aTest["company"][$key]["isDefault"] == true) {
                            $sDefault = " " . "checked";
                        }
                        else {
                            $sDefault = "";
                        }
                        print("<INPUT type=\"checkbox\"" . " " .
                              "name=\"" . "company[]" . "\"" . " " .
                              "value=\"" .
                              $aTest["company"][$key]["value"] .
                              "\"" . $sDefault . ">" .
                              $aTest["company"][$key]["desc"]
                             );
                        print("<BR>\n");
                    }

                    ?>
            </TD>
        </TR>


$aTest ist ein Array in PHP definiert. Ich lese daraus mit foreach die Werte aus
und gebe diese Werte in HTML Checkboxen aus. Ich möchte nun aber eine Abfrage ein-
bauen, die kontrolliert ob der Benutzer überhaupt eine Checkbox angeklickt hat bevor
die nächste Seite aufgerufen wird.
d.h. wenn der Benutzer das Formular bestätigt, soll anhand eines Javascriptes ein Kontrolle erfolgen.
Das muß ich doch mit Javascript machen, oder?


Werner

> Hallo,

> > ich habe folgenden HTML Code:

> > <INPUT type="checkbox" "name="test[]">


> > Wie kann ich mit Javascript abfragen ob test[] leer ist?

> test[] ist Client-seitig kein Array, sondern nur der Bezeichner fuer dieses INPUT-Feld bzw. weitere.

> In JavaScript kann man auf alle Felder mit diesem "Sammelnamen" so zugreifen (bezogen auf das erste Formular):

> document.forms[0].elements["test[]"][index ab 0].eigenschaft
> oder
> document.forms["formularname"].elements["test[]"][index ab 0].eigenschaft

> Erst im (vermutlich bei action angegebenen) PHP-Script wird das Array $test[] erhalten und mittels count($test) kann die Anzahl der Arrayelemente bestimmt werden.

> BTW: Vor name ist ein " zuviel.

> MfG, Thomas

Abfragen ob ein Array leer ist

Thomas Meinike 06. 03. 2002, 10:24

Hallo,

» Ich möchte nun aber eine Abfrage ein-
> bauen, die kontrolliert ob der Benutzer überhaupt eine Checkbox angeklickt hat bevor
> die nächste Seite aufgerufen wird.
> d.h. wenn der Benutzer das Formular bestätigt, soll anhand eines Javascriptes ein Kontrolle erfolgen.
> Das muß ich doch mit Javascript machen, oder?

Ja, siehe meinen Nachtrag zur ersten Antwort. Setze das im Formular onsubmit ein und gib false zurueck, wenn keine Checkbox aktiv ist, also bei j=0:

<form action="..." onsubmit="var j=0;d=document.forms[0].elements['test[]'];for(i=0;i<d.length;i++){if(d[i].checked)j++;}if(j==0){return false;} else {return true;}">
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="checkbox" name="test[]"><br>
<input type="submit">
</form>

MfG, Thomas

Abfragen ob ein Array leer ist

Werner 06. 03. 2002, 10:28


Super,

das klappt,


vielen Dank Thomas.

Werner

PS! Das ist ein prima Forum hier, man bekommt sofort Antworten zu einem Problem.


> Hallo,

> » Ich möchte nun aber eine Abfrage ein-
> > bauen, die kontrolliert ob der Benutzer überhaupt eine Checkbox angeklickt hat bevor
> > die nächste Seite aufgerufen wird.
> > d.h. wenn der Benutzer das Formular bestätigt, soll anhand eines Javascriptes ein Kontrolle erfolgen.
> > Das muß ich doch mit Javascript machen, oder?

> Ja, siehe meinen Nachtrag zur ersten Antwort. Setze das im Formular onsubmit ein und gib false zurueck, wenn keine Checkbox aktiv ist, also bei j=0:

> <form action="..." onsubmit="var j=0;d=document.forms[0].elements['test[]'];for(i=0;i<d.length;i++){if(d[i].checked)j++;}if(j==0){return false;} else {return true;}">
> <input type="checkbox" name="test[]"><br>
> <input type="checkbox" name="test[]"><br>
> <input type="checkbox" name="test[]"><br>
> <input type="submit">
> </form>

> MfG, Thomas

Abfragen ob ein Array leer ist

Hans-Peter Rieger 06. 03. 2002, 09:42

> Hallo,

Hi Werner,

> ich habe folgenden HTML Code:

> <INPUT type="checkbox" "name="test[]">

> Wie kann ich mit Javascript abfragen ob test[] leer ist?

if (test.length == 0) ...

so ganz ist mir aber nicht klar, was Du mit Deiner Checkbox vorhast (unabhängig von der Anzahl der "Gänsefüßchen"). Schau´ mal in SELFHTML nach was passiert, wenn die die Checkbox nicht checked ist.

> Werner

Gruß
Hans-Peter

© 1998-2014 SELFHTMLImpressumSoftware: Classic Forum 3.4