(close)[JavaScript+PHP] Per JavaScript in einer SelectBox <div> Elemente filtern.

TS7

Well-known member
ID: 251056
L
22 September 2006
374
20
Hallo,
und zwar habe ich folgendes Problem:

Ich habe eine Datei wo ich eine Tabelle per MySql auslese und anzeigen lasse ob die Mitglieder, die Mitgliedschaft schon bezahlt haben.

Ich habe es mit DIV Tag versucht, leider filtert er es aber nicht.

Es wäre nett, wenn sich jemand finden könnte der mir hilft, nur die Mitglieder anzuzeigen, wie ich den Filter (Auswahlmenü/Select [Ja, Nein oder Kostenlos]) eingestellt habe.

Hoffe ich habs ein bisschen verständlich erklärt.

hier der Code:
PHP:
<head>
<title>Bezahlt</title>
<script language="JavaScript" type="text/javascript"> 
<!-- 
function doIt(theValue) 
{ 
    var divs=document.getElementsByTagName("DIV"); 
    for (var i=0;i<divs.length;i++) 
    { 
        if (divs[i].className=="mitgliedschaft") 
        { 
        divs[i].style.display=(( theValue=="every" || divs[i].id==theValue)?"block":"none"); 
        }; 
    } 
} 
//--> 
</script> 
</head>

<body bgcolor="#ACACAC">
<p align="center"><strong>Bezahlt</strong> <strong> Liste</strong></p>
<table width="100%" border="0">
  <tr>
    <th width="14%" scope="col">Sotieren:</th>
    <th width="77%" scope="col"><label>
        <select id="Select" onchange="doIt(this.value)"> 
        <option value="every">Alle anzeigen</option>
        <option value="Kostenlos">Kostenlos</option>
        <option value="Ja">Ja</option>
        <option value="Nein">Nein</option>
      </select>
    </label></th>
    <th width="9%" scope="col"> </th>
  </tr>
</table>
<?
//Verbindung mit Dadenbank (Zeilen entfernt, zur übersichtlichkeit)

    $sqlstatement="SELECT ID, Vorname, Nachname, Mitgliedschaft, Bezahlt_ja_nein FROM Mitglieder ORDER BY ID";
    $result=mysql_query($sqlstatement);

    if ($result)
    {
       print "<table border=\"1\" cellspacing=\"0\" ".
       "cellpadding=\"0\" WIDTH=\"100%\" >\n";

       print "<tr><th><u>Vorname</u></th><th><u>Nachname</u></th><th><u>Status</u></th><th><u>Bezahlt</u></th><th>bearbeiten</th></tr>\n";
       while ($dataset = mysql_fetch_array($result))

           {
        print "<div id=".$dataset['Bezahlt_ja_nein']."class=\"mitgliedschaft\">";
        print "<tr>";
        print "<td>".$dataset['Vorname']."</td>";
        print "<td>".$dataset['Nachname']."</td>";
        print "<td>".$dataset['Mitgliedschaft']."</td>";
        print "<td>".$dataset['Bezahlt_ja_nein']."</td>";
        print "<td><form name=\"form1\" method=\"post\" action=\"bearbeiten.php\"><input type=\"submit\" name=\"bearbeiten\" value=".$dataset['ID']."></form></td>";
        print "</tr>\n";
        print "</div>";
        
    }
    $count = mysql_num_rows($result);
    print "</table>\n";
      }

   ?>
 
Zuletzt bearbeitet:
hat sich erledigt

Lösung:
PHP:
<head>
<script language="javascript">
<!--
function doIt(theValue){
  // Zeilen der Tabelle ermitteln
  arrRows = document.getElementById("table_01").getElementsByTagName("tbody")[0].rows;

  // Tabelle ab zweiter Zeile durchlaufen
  for(var i=1; i<arrRows.length; i++){
    if (arrRows[i].className.search != -1){
      arrRows[i].style.display = (( theValue=="every" || arrRows[i].className.search(new RegExp(theValue, "i"))!=-1)? "" : "none");
    }
  }
}
//->
</script>
</head>
HTML:
<select id="Select" onchange="doIt(this.options[this.selectedIndex].value);">
        <option value="every">Alle anzeigen</option>
        <option value="Kostenlos">Kostenlos</option>
        <option value="Ja">Ja</option>
        <option value="Nein">Nein</option>
</select>
PHP:
    $sqlstatement="SELECT ID, Vorname, Nachname, Mitgliedschaft, Bezahlt_ja_nein FROM Mitglieder ORDER BY ID";
    $result=mysql_query($sqlstatement);

    if ($result)
    {
       print "<table id=\"table_01\" border=\"1\" cellspacing=\"0\" ".
       "cellpadding=\"0\" WIDTH=\"100%\" >\n";

       print "<tr><th><u>Vorname</u></th><th><u>Nachname</u></th><th><u>Status</u></th><th><u>Bezahlt</u></th><th>bearbeiten</th></tr>\n";
       while ($dataset = mysql_fetch_array($result))
           {
        
        print "<tr class=".$dataset['Bezahlt_ja_nein'].">";
        print "<td>".$dataset['Vorname']."</td>";
        print "<td>".$dataset['Nachname']."</td>";
        print "<td>".$dataset['Mitgliedschaft']."</td>";
        print "<td>".$dataset['Bezahlt_ja_nein']."</td>";
        print "<td><form name=\"form1\" method=\"post\" action=\"bearbeiten_bezahlt.php\"><input type=\"submit\" name=\"bearbeiten\" value=".$dataset['ID']."></form></td>";
        print "</tr>\n";
        
    }
    $count = mysql_num_rows($result);
    print "</table>\n";
      }

   ?>