46356
Goto Top

Text in Schleife einfügen mit PHP?

Hallo!

Wie ist es möglich für die einzelnen Kalendertage (in meinem Script) einen eigenen Wert (Text) zuzuweisen?

<html>
<head>
<style type="text/css">  
  <!--
    .kalender {
      /* Grundformatierung des Kalenders */
      border-bottom-width: 1px;
      border-bottom-style: solid;
      border-bottom-color: #000000;
      font-family:Verdana, Arial, Helvetica, sans-serif;
      font-size:11px;
    }

    .wtag {
      /* Ein normaler Wochentag */
      backgraound-color: #FFFFFF;
      border-top-width: 1px;
      border-top-style: solid;
      border-top-color: #000000;
      line-height : 18px;
    }

    .we {
      /* Ein Tag des Wochenendes */
      background-color: #FF0202;
      border-top-width: 1px;
      border-top-style: solid;
      border-top-color: #000000;
      line-height : 18px;
    }

    .SELECTFELD {
      font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
      font-size: 12px;
      width: 90px;
    }

    .BUTTON{
      font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
      font-size: 11px;
      width: 140px;
    }
  -->
</style>
</head>
<body>
  <?php
    if($_GET[anzeigen]==1)
    {
      $monat = $_GET[monat];
      $jahr = $_GET[jahr];
    }
    else
    {
      $monat = date("m");  
      $jahr = date("Y");  
    }

    // UNIX Timestamp des letzten Tages des Monats
    $lastday_ts = mktime(0,0,0,$monat+1,0,$jahr);

    // letzter Tag des Monats = Anz. der Tage(numerischer Wert)
    $lastday_d = date("d",$lastday_ts);  

    // aktueller Tag
    $heute_tag = date("d");  
    $heute_monat = date("n");  
    $heute_jahr = date("Y");  
  ?>
  <form name="formkalender" method="get" action="<?php echo $PHP_SELF; ?>">  
    <input type="hidden" name="anzeigen" value="1">  
    <table width="350" border="0" cellspacing="0" cellpadding="0">  
      <tr valign="top" align="left">  
        <td width="100">  
          <select name="monat" class="SELECTFELD">  
            <option value="1" <?php if($monat == 1) echo "selected style='background-color=#99CCFF;'"?>>Januar</option>  
            <option value="2" <?php if($monat == 2) echo "selected style='background-color=#99CCFF;'"?>>Februar</option>  
            <option value="3" <?php if($monat == 3) echo "selected style='background-color=#99CCFF;'"?>>M&auml;rz</option>  
            <option value="4" <?php if($monat == 4) echo "selected style='background-color=#99CCFF;'"?>>April</option>  
            <option value="5" <?php if($monat == 5) echo "selected style='background-color=#99CCFF;'"?>>Mai</option>  
            <option value="6" <?php if($monat == 6) echo "selected style='background-color=#99CCFF;'"?>>Juni</option>  
            <option value="7" <?php if($monat == 7) echo "selected style='background-color=#99CCFF;'"?>>Juli</option>  
            <option value="8" <?php if($monat == 8) echo "selected style='background-color=#99CCFF;'"?>>August</option>  
            <option value="9" <?php if($monat == 9) echo "selected style='background-color=#99CCFF;'"?>>September</option>  
            <option value="10" <?php if($monat == 10) echo "selected style='background-color=#99CCFF;'"?>>Oktober</option>  
            <option value="11" <?php if($monat == 11) echo "selected style='background-color=#99CCFF;'"?>>November</option>  
            <option value="12" <?php if($monat == 12) echo "selected style='background-color=#99CCFF;'"?>>Dezember</option>  
          </select>
        </td>
        <td width="80">  
          <select name="jahr" style="width: 70px" class="SELECTFELD">  
            <?php
              // Anz. der Jahre vor und nach heute
              $anz_jahre = 2;

              for($i = $heute_jahr - $anz_jahre ; $i <= $heute_jahr + $anz_jahre; $i++)
              {
                if($i == $jahr)
                  echo "<option value=\"".$i."\" selected style='background-color=#99CCFF;'>".$i."</option>";  
                else
                  echo "<option value=\"".$i."\">".$i."</option>";  
              }
            ?>
          </select>
        </td>
        <td width="170" align="right">  
          <input type="submit" name="b_anzeigen" value="Termine anzeigen" class="BUTTON">  
        </td>
      </tr>
    </table>
  </form>
  <br>
  <br>
  <table width="350" border="0" cellspacing="0" cellpadding="5" class="kalender">  
  <?php for($i = 1; $i <= $lastday_d; $i++) : ?>
    <?php
      // UNIX Timestamp des aktuellen Tages ermitteln
      $tag_ts = mktime(0,0,0,$monat,$i,$jahr);

      // Tag mit fuehrender Null aus $i erzeugt
      if($i < 10)
        $tag_nr = "0".$i;  
      else
        $tag_nr = $i;

      // ID des Wochentages ermitteln
      // 0 == Sonntag ... 6 == Samstag
      $tag_id = date("w",$tag_ts);  

      // Abk. des Wochentags und Formatierung ermitteln
      switch($tag_id)
      {
        case 0 : $tag_name = "So."; $my_class="we"; break;  
        case 1 : $tag_name = "Mo."; $my_class="wtag"; break;  
        case 2 : $tag_name = "Di."; $my_class="wtag"; break;  
        case 3 : $tag_name = "Mi."; $my_class="wtag"; break;  
        case 4 : $tag_name = "Do."; $my_class="wtag"; break;  
        case 5 : $tag_name = "Fr."; $my_class="wtag"; break;  
        case 6 : $tag_name = "Sa."; $my_class="we"; break;  
      }

      $my_condition = " ((FROM_UNIXTIME(date_Von,'%Y') &lt; ".$jahr.") OR (FROM_UNIXTIME(date_Von,'%Y') = ".$jahr." AND FROM_UNIXTIME(date_Von,'%c') &lt; ".$monat.") OR (FROM_UNIXTIME(date_Von,'%Y') = ".$jahr." AND FROM_UNIXTIME(date_Von,'%c') = ".$monat." AND FROM_UNIXTIME(date_Von,'%d') &lt;= ".$tag_nr.")) AND ((FROM_UNIXTIME(date_Bis,'%Y') &gt; ".$jahr.") OR (FROM_UNIXTIME(date_Bis,'%Y') = ".$jahr." AND FROM_UNIXTIME(date_Bis,'%c') &gt; ".$monat.") OR (FROM_UNIXTIME(date_Bis,'%Y') = ".$jahr." AND FROM_UNIXTIME(date_Bis,'%c') = ".$monat." AND FROM_UNIXTIME(date_Bis,'%d') &gt;= ".$tag_nr."))";  
    ?>

    <tr align="left" valign="top">  
      <td width="70" class="<?php echo $my_class; ?>">  
        <?php echo $tag_nr." | ".$tag_name; ?>  
      </td>
      <td width="280" class="<?php echo $my_class; ?>">  
        <we:listview type="object" order="Titel" classid="9" condition="\$my_condition">  
          <we:ifFound>
            <we:repeat>
              <we:field name="Titel"/>  
            </we:repeat>
          </we:ifFound>
          <we:ifNotFound>
            Einzelne Zeile
          </we:ifNotFound>
        </we:listview>
      </td>
    </tr>
    <?php endfor; ?>
  </table>
</body>
</html>

Bei mir wird jedesmal "Einzelne Zeile" angezeigt...

Wer kann mir weiterhelfen?

Lg. Alex

Content-Key: 76883

Url: https://administrator.de/contentid/76883

Ausgedruckt am: 29.03.2024 um 10:03 Uhr

Mitglied: pulse
pulse 30.12.2007 um 18:14:47 Uhr
Goto Top
Nimm doch einfach ein Array?!
Oder schreib dir ne kleine Configdatei die du ausliest^^
Mitglied: 46356
46356 30.12.2007 um 18:29:30 Uhr
Goto Top
Hallo!

Ich habe hier nur das Grungerüst für meinen Kalender...
Anschließend wollte ich die Daten von einer MySQL Datenbank
aufrufen!

Aber ich versuchs mal mit Arrays...

Danke für den Tip!!

Lg. Alex
Mitglied: 46356
46356 30.12.2007 um 19:09:30 Uhr
Goto Top
Hallo!

Habs mit Arrays probiert und es hat nicht funktioniert face-sad

Im Grunde genommen ist ein Array doch nichts anderes als eine Variable?

$blume = "Nelke";
echo $blume;
Variable


$blumen = array("Sonnenblume", "Nelke", "Schlüssenblume");
echo $text[1];
Array


Bei beiden Codes ist das Ergebnis Nelke...


Wie muss ich dann Arrays in meinen Script einbauen?


Lg. Alex
Mitglied: pulse
pulse 30.12.2007 um 19:27:46 Uhr
Goto Top
Ein Array ist szs. eine anreihung von variablen...also eine art liste, wo auf die elemente per index zugegriffen werden kann.

wenn du z.b. alle elemente mit einer for-schleife ausgeben möchtest, dann sieht das so aus:

$blumen = array("Sonnenblume", "Nelke", "Schlüssenblume");


for ($i=0;$i<6;$i++)
{
echo $blumen[$i];
}

glaub so sollte es funktionieren.

welche schleife du nimmst ist egal.

es gibt auch ne foreach-schleife, die alle elemente ausgibt

http://www.infos24.de/phpe/handbuch/13_php_schleifen.htm
Mitglied: 46356
46356 30.12.2007 um 22:18:25 Uhr
Goto Top
Hallo!

Bei mir will das einfach nicht funktionieren...

123a797930b6c772f6c7726dd77e32c6-admin

Ich habe da mal ein Bild reinkopiert, das meine Ausgangssituation zeigt...

Vom 1. bis zum 31. Dezember wird mir der gleiche Text angezeigt..

Nun hätte ich aber gerne, dass es mir
am 1. Dezember z.B: Linux
am 2. Dezember z.B.: Windows
am 3. Dezember z.B.: Mac
usw.

Falls es mit Schleifen ginge, könntest du mal die Schleife in meinen Code posten?

Danke,
Alex
Mitglied: pulse
pulse 31.12.2007 um 03:37:53 Uhr
Goto Top
Du könntest ein Array mit z.b 31 elementen anlegen
und die gehst du per index durch, wie ich es in dem beispiel gezeigt habe oben
also das jeweile element des arrays wird über den index indentifiziert.
und für den index kannst du auch eine zählvariable benutzen,
die du in einer schleife hochzählst.

oder...wir reden irgendwie aneinander vorbei^^
Mitglied: 46356
46356 31.12.2007 um 15:24:25 Uhr
Goto Top
Hallo!

Redest du nun von einer ganz neuen Möglichkeit oder
kann ich das in meinen vorhandenen Script einbauen?

Mfg.
Alex