auf table zugreifen

CosmoKey

Mitglied
Hallo!


Ich hab da ein kleines problem.
also folgendes:
ich habe eine tabelle:

PHP:
<table>  
<tr>  
<td><input name="task" type="checkbox"/></td>  
<td>benutzername</td>  
<td><div> benutzer mail</div> </td>  
</tr>  
<tr>  
<td><input name="task" type="checkbox"/></td>  
<td>benutzername</td>  
<td><div> benutzer mail </div></td> 
</tr>  
</table>

Das ist die grundstruktur der tabelle. jetzt möchte ich, dass wenn auf einen button gedrückt wird, an alle, über eine checkbox ausgewählen benutzer, eine mail verschickt wird. mein problem hier bei ist jetzt, wie kann ich mit javascript auf die tabelle zugreifen?
ich habe mir überlegt, mit "document.getElementsByTagName("tr");" wähle ich mir alle zeilen aus. diese gehe ich dann spalte für spalte durch und überprüfe 1. ob die checkbox in der ersten spalte ausgewählt ist, wenn ja, hole ich mir die mail-adresse aus der dritten spalte usw.
mit dem resultat baue ich mir dann ein "mailto:...." zusammen.


danke schon mal für alle tips.
 
Zuletzt bearbeitet:
Nada ;)
Versuche folgendes.

Gebe jeder Checkbox den gleichen Namen(wie task) und den value der email Adresse(oder id, je nach dem). Dann rufst du per
document.getElementsByName("task").length alle in einer for Schleife auf und kannst nun alle nach der Reihe ihren Value ansprechen.

In diesem Sinne
 
danke für den tip. leider wird die tabelle dynamisch generiert und ich hab absolut keine einfluss darauf.

ich hab das porblem aber inzwischen gelöst.
hier mein code
PHP:
function outlooktest() {
         var rows = document.getElementsByTagName("tr");
         var mails = "mailto:";
         var boolmail;
         if (rows != null) {
//      alert(rows.length);
               for (var i = 0; i < rows.length; i++) {
                    var row = rows[i];
                    //alert("row");
                    if (row != null) {
                        //alert("row != null");
                        var cells = row.getElementsByTagName("td");
                        //alert("cells");
                        if (cells != null) {
                            //alert("cell != null");
                            for (var j = 0; j < cells.length; j++) {
                                 var cell = cells[j];
                                 var inp = cell.getElementsByTagName("input");
                                 if (inp != null) {
                                     //alert("wad " + inp.length);
                                     for (var jj = 0; jj < inp.length; jj++) {
                                             if (inp[jj].type == "checkbox") {
//                                                 alert("checkbox " + inp[jj].checked);
                                                 if (inp[jj].checked == true) {
                                                     boolmail = "true";
                                                 } else {
                                                   boolmail = "false";
                                                 }
                                             } else {
                                               //alert(inp[jj].type);
                                             }
                                     }
                                     if (j == 2 && boolmail == "true") {
                                         var divs = cell.getElementsByTagName("div");
                                         for (var n = 0; n < divs.length; n++) {
                                              var div = divs[n];
                                              var mail = div.firstChild.data;
                                              mail += ";";
                                              mails += mail;
                                              alert(mails);
                                         }
                                     }

                                 }
                            }
                        } else {
                          alert("cells == null")
                        }
                    } else {
                      alert("row == null")
                    }
               }
         } else {
             alert("ist leider null");
         }

}

ich geh einfach alle zeilen durch und guck, ob in der ersten spalte eine checkbox ist. wenn ja setzte ich "boolmail" auf true, wenn nicht, dann auf false und breche die schleife ab. bei true gehe ich weiter die spalten durch. wenn ich dann in der spalte bin, in der die mail adresse steht. hole ich mir den inhalt raus und verarbeite ihn.

ist vielleicht nicht die schönste lösung. aber in meinen fall sollte sie ausreichend sein.

jetzt muss nur noch der mailto: link zusammengebaut werden.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück