JavaScript: alle checkbox / checked setzen ...

Bash, Shell, PHP, Python, Perl, CGI
xamibor
Posts: 211
Joined: 2003-03-11 16:52

JavaScript: alle checkbox / checked setzen ...

Post by xamibor »

hi,

bekomme gerade einen Schrikrampf ....

wie bekommt man so eine einfache functiom hin das wenn mann z.B. Alles Markieren drückt alle checkboxen innerhalb eines Formulares eine hacken setzt?

Danke für euren selischen und praktischen beistand.

Gruß
Andreas
gladi
Posts: 17
Joined: 2003-09-18 20:36

Re: JavaScript: alle checkbox / checked setzen ...

Post by gladi »

Guck dir das hier mal an:

Code: Select all

/**
 * Checks/unchecks all tables
 *
 * @param   string   the form name
 * @param   boolean  whether to check or to uncheck the element
 *
 * @return  boolean  always true
 */
function setCheckboxes(the_form, do_check)
{
    var elts      = (typeof(document.forms[the_form].elements['selected_db[]']) != 'undefined')
                  ? document.forms[the_form].elements['selected_db[]']
                  : (typeof(document.forms[the_form].elements['selected_tbl[]']) != 'undefined')
          ? document.forms[the_form].elements['selected_tbl[]']
          : document.forms[the_form].elements['selected_fld[]'];
    var elts_cnt  = (typeof(elts.length) != 'undefined')
                  ? elts.length
                  : 0;

    if (elts_cnt) {
        for (var i = 0; i < elts_cnt; i++) {
            elts[i].checked = do_check;
        } // end for
    } else {
        elts.checked        = do_check;
    } // end if... else

    return true;
} // end of the 'setCheckboxes()' function
Ist ein Ausschnitt aus der libraries/functions.js von phpMyAdmin.

Aufrufen tust du das ganze mit

Code: Select all

setCheckboxes('***FormName***', true);return false;
und steckst dies dann in ein onClick o.ä.

bittäschööön. :D
xamibor
Posts: 211
Joined: 2003-03-11 16:52

Re: JavaScript: alle checkbox / checked setzen ...

Post by xamibor »

Mann ich habe echt eine blokade .... scheint am wetter hier zu liegen ... es regnet ....

Was ich gemacht habe ....:

die js function eingebaut. OHNE was dran zu ändern.

Am ende des formulars folgenden Text "aktiv" mit einem onClick Event: onClick="setCheckboxes('messageList', true);"

die checkboxen haben alle den selben namen "Mid" ....

un es geht net ....

ich sollte straßenfeger werden :-(

Gruss
Andreas
gladi
Posts: 17
Joined: 2003-09-18 20:36

Re: JavaScript: alle checkbox / checked setzen ...

Post by gladi »

Gibt's 'nen JS Fehler?
Poste mal den exakten Code / Implementierung.
xamibor
Posts: 211
Joined: 2003-03-11 16:52

Re: JavaScript: alle checkbox / checked setzen ...

Post by xamibor »

php Datei ein Auszug:

Code: Select all

  echo "<form name="messageList" method="post" action=""> <table width="100%" border="0" cellpadding="2" bordercolor="#FFFFFF">
    <tr bgcolor="#FFCC66">
      <td width="80">Freischalten</td>
      <td width="30">ID</td>
      <td>Titel</td>
      <td width="50">&</td>
      <td width="50">&</td>
    </tr>";



        while(list($lid, $cid, $sid, $title, $url, $description, $name, $email, $submitter, $filesize, $version, $homepage) = sql_fetch_row($result, $dbi)) {
            if ($submitter == "") {
                $submitter = _NONE;
            }

          echo "<tr>
                   <td><div align="center">
                       <input type="checkbox" name="Mid" value="$lid">
                     </div></td>
                   <td>$lid</td>
                   <td>$title</td>
                   <td>bearbeiten</td>
                   <td>löschen</td>
                 </tr>";

                }

          echo "  </table> <br><a href="#" onClick="setCheckboxes('messageList', true);return false;">Alle markieren</a> - <a href="javascript:ClearAll();">Markierungen löschen</a>
</form>";
        CloseTable();
        echo "<br>";
    } else {
    }
die js datei auzug:

Code: Select all

function setCheckboxes(the_form, do_check)
{
    var elts      = (typeof(document.forms[the_form].elements['selected_db[]']) != 'undefined')
                  ? document.forms[the_form].elements['selected_db[]']
                  : (typeof(document.forms[the_form].elements['selected_tbl[]']) != 'undefined')
          ? document.forms[the_form].elements['selected_tbl[]']
          : document.forms[the_form].elements['selected_fld[]'];
    var elts_cnt  = (typeof(elts.length) != 'undefined')
                  ? elts.length
                  : 0;

    if (elts_cnt) {
        for (var i = 0; i < elts_cnt; i++) {
            elts[i].checked = do_check;
        } // end for
    } else {
        elts.checked        = do_check;
    } // end if... else

    return true;
} // end of the 'setCheckboxes()' function
eine js fehler gibt es nicht.

Gruss
Andreas
gladi
Posts: 17
Joined: 2003-09-18 20:36

Re: JavaScript: alle checkbox / checked setzen ...

Post by gladi »

Mmmmm, ich glaub die JS Funktion spricht die Boxen gar nicht an, WEIL die halt die falschen Namen haben. ;)
Also:
Entweder in der JS Function "selected_db[]" durch "mid[]" ersetzen, oder deine Boxen alle "selected_db[]" benennen.

Was hier wichtig ist: Die Boxen müssen einen Array bilden. Also besser wäre hier:

Code: Select all

<input type="checkbox" name="mid[]" value="$lid">
Für's Deselektieren müsste

Code: Select all

setCheckboxes('messageList',FALSE);
funktionieren, da brauchste keine extra Funktion....

PS: Gab es nicht eh schon 'nen Fehler als du probiert hast mehrere Values zu übergeben in derselben Variable!? :ugly: -> Array ist da besser ;-)