Announcement

Collapse
No announcement yet.

<tr> innerhalb einer foreach Schleife

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • <tr> innerhalb einer foreach Schleife

    Hallo zusammen,

    folgendes Problem habe ich.
    Ich habe eine Tabelle. Die einzelnen <td> Elemnte kann ich durch das anklicken über Checkboxen einblenden bzw. ausblenden. Das ein/ausblenden geschieht über JavaScript, dort wird dann für das jeweilige td die Klasse gesetzt wo dann halt visible: none ist oder visible: table-cell. Bei den 4 Überschriften die ich dadurch einblenden/ausblenden lasse, funktioniert das auch und es steht alles hintereinander. Jetzt aber mein Problem, ich habe nun ein <tr> in dem ich 5 weitere <td> habe. Ein td wird permanent angezeigt und gibt mir alle Namen pro Zeile wieder. In den vier weiteren <td> sollen zu dem jeweiligen Namen die Werte angezeigt werden. Diese Werte sollen auch über die Auswahl der Checkbox eingeblendet / ausgeblendet werden. Eigentlich funktioniert das auch alles aber jetzt mein Problem, die Namen werden alle angezeigt also pro Zeile ein Name, aber die Werte werden dann nicht mehr angezeigt obwohl diese eingeblendet werden sollen, es werden nur die Werte in die erste zeile geschrieben, aber nicht in den anderen Zeilen. Was muss ich machen, damit auch die anderen Zeilen dann die Werte bekommen? Die Foreach Schleife wird ja richtig durchlaufen, da die Namen ja alle in Zeilen angezeigt werden. Nehme ich aus den td> die id="xy" raus um das td> nicht einblendbar/ausblendbar zu machen, so funktioniert dort auch das foreach und die Zeilen mit den Namen bekommen auch Werte nur kann ich die dann nicht einblenden/ausblenden also liegt der Fehler so wie ich das sehe, irgendwo in der CSS Klasse, die verhindert, dass das letzte td> die Werte der nächsten Zeile anzeigen lässt.

    Wer kann mir dabei evtl. helfen :-)

  • #2
    Nach 156 Beiträgen:

    Was hat das mit HTML zu tun? Offenbar entweder Javascript oder PHP. HTML kennt kein foreach!

    Wer soll ohne Code den Fehler finden?
    Zuletzt editiert von Christian Marquardt; 02.03.2011, 15:24.
    Christian

    Comment


    • #3
      Tabelle sieht so aus:
      HTML Code:
      <table border="1" cellpadding="1" cellspacing="1" style="width: 500px;">
      	<tbody>
      		<tr>
      			<td>&nbsp;</td>
      			<td id="fieldset_2011"  class="in_fieldset_wide notvisible" colspan="4" rowspan="1">2011</td>
      		</tr>
      		<tr>
      			<td>&nbsp;</td>
      			<td id="fieldset_2011q1"  class="in_fieldset_wide notvisible">Q1</td>
      			<td id="fieldset_2011q2"  class="in_fieldset_wide notvisible">Q2</td>
      			<td id="fieldset_2011q3"  class="in_fieldset_wide notvisible">Q3</td>
      			<td id="fieldset_2011q4"  class="in_fieldset_wide notvisible">Q4</td>
      		</tr>
                              <?php  foreach ($Namen as $Name)
                                  : {
      				$Option = array();
      				$Option['value'] = $Name['id'];
      				$Option['text']  = $Name['name'];
      			}?>
              <tr class="in_fieldset">
                  <td class="in_fieldset_wide"><?php print_r($Option['text']) ; ?></td>
                  <td id="fieldset_2011q1_value" class="in_fieldset_wide notvisible">1</td>
                  <td id="fieldset_2011q2_value" class="in_fieldset_wide notvisible">2</td>
                  <td id="fieldset_2011q3_value" class="in_fieldset_wide notvisible">3</td>
                  <td id="fieldset_2011q4_value" class="in_fieldset_wide notvisible">4</td>
      
             </tr>
              <?php endforeach; ?>
      	</tbody>
      </table>
      Das Java-Script welches das ein und ausblenden vornimmt sieht so aus
      Code:
      function showElement() {
          <!--
          var jahr_2011 = document.getElementById("FuesysAktualisierung_Jahr2011").checked;
      	if (jahr_2011) {
      		document.getElementById("fieldset_2011").className = "in_fieldset_wide";
                      document.getElementById("fieldset_2011q1").className = "in_fieldset_wide";
                      document.getElementById("fieldset_2011q1_value").className = "in_fieldset_wide"
                      document.getElementById("fieldset_2011q2").className = "in_fieldset_wide";
                      document.getElementById("fieldset_2011q2_value").className = "in_fieldset_wide";
                      document.getElementById("fieldset_2011q3").className = "in_fieldset_wide";
                      document.getElementById("fieldset_2011q3_value").className = "in_fieldset_wide";
                      document.getElementById("fieldset_2011q4").className = "in_fieldset_wide";
                      document.getElementById("fieldset_2011q4_value").className = "in_fieldset_wide";
      	}
          else {
              document.getElementById("fieldset_2011").className = "in_fieldset_wide notvisible";
               document.getElementById("fieldset_2011q1").className = "in_fieldset_wide notvisible";
               document.getElementById("fieldset_2011q1_value").className = "in_fieldset_wide notvisible"
                      document.getElementById("fieldset_2011q2").className = "in_fieldset_wide notvisible";
                      document.getElementById("fieldset_2011q2_value").className = "in_fieldset_wide notvisible"
                      document.getElementById("fieldset_2011q3").className = "in_fieldset_wide notvisible";
                      document.getElementById("fieldset_2011q3_value").className = "in_fieldset_wide notvisible"
                      document.getElementById("fieldset_2011q4").className = "in_fieldset_wide notvisible";
                      document.getElementById("fieldset_2011q4_value").className = "in_fieldset_wide notvisible"
          }
      </script>

      Comment


      • #4
        Sollte man den ganzen Feldern nicht einfach denselben Style geben und diesen z.B. per JQuery verändern?
        Das würde den Code wohl auf 3 Zeilen schmälern

        Nach dazu macht JQuery den Zugriff auf DOM Elemente wesentlich einfacher und der Code wird dadurch auch lesbarer.

        http://jquery.com/

        Comment


        • #5
          Was hat das mit HTML zu tun?
          Christian

          Comment


          • #6
            Ja wir wissens jetzt dass es nix mit HTML zu tun hat. Wenns keiner verschieben kann ists halt blöd. Soll er nochmal nen Thread aufmachen? Ich denke er/sie hat nach bestem Wissen und Gewissen das Forum ausgewählt und nächstes mal wird er im JavaScript Forum posten.

            Comment


            • #7
              Ja wir wissens jetzt dass es nix mit HTML zu tun hat. Wenns keiner verschieben kann ists halt blöd. Soll er nochmal nen Thread aufmachen? Ich denke er/sie hat nach bestem Wissen und Gewissen das Forum ausgewählt und nächstes mal wird er im JavaScript Forum posten.
              Nach über 150 Beiträgen sollte man meinen, dass er sich hier auskennt
              Christian

              Comment


              • #8
                Ist es ein Weltuntergang? Vielleicht kennt er sich auch nicht wirklich gut aus (wovon ich jetzt fast mal ausgehe sonst würde er das hinbekommen) und kann es nicht besser einordnen?

                Comment


                • #9
                  Ist es ein Weltuntergang?
                  Ja, finde ich. Man kann erwarten, das Fragesteller schon den richtigen Ort auswählen, gerade wenn sie jahrelang dabei sind, jahrelang sich mit diesem Thema beschäftigen.
                  Christian

                  Comment

                  Working...
                  X