gechger
Goto Top

In einem Formular Datums-Listenfeld mit Tagesdatum vorbelegen

In einem Formular biete ich die Eingabe eines Datums mittels Listenfelder an

Hallo Forum,

gerade entwickle ich ein kleines Webtool. Der User soll Daten mit einem wählbaren Datum versehen, z. Bsp. Arbeitszeit am 01.07.2009 8 Stunden auf Projekt 12345.
Dafür möchte ich für Tag, Monat und Jahr ein Drop Down Feld anbieten. Beim Aufruf der Seite soll aber das aktuelle Tagesdatum vorbelegt werden. Wird also das Formular am 01.07. 2009 aufgerufen, soll das auch in den Auswahllisten schon drin stehen.

Mein Lösungsansatz ist simpel, und funktioniert natürlich nicht.

<?
$akttag=(date("d"));  
$aktmonat=(date("m"));  
$aktjahr=(date("y"));  
echo "$akttag","<br>";  
echo "$aktmonat","<br>";  
echo "$aktjahr","<br>";  



?>



<form action="erfassen.php" method="post">  
<tr>
<td>
 </td>
 </tr>
  <tr>
    <td>
    <select name="tag" size="1" >  
    <option value="01" <?if ($akttag='01'){?>selected<?}?>>01</option>  
    <option value="02" <?if ($akttag='02'){?>selected<?}?>>02</option>  
    <option value="03" <?if ($akttag='03'){?>selected<?}?>>03</option>  
    <option value="04" <?if ($akttag='04'){?>selected<?}?>>04</option>  
    <option value="05" <?if ($akttag='05'){?>selected<?}?>>05</option>  
    <option value="06" <?if ($akttag="06"){?>selected<?}?> >06</option>  
    <option value="07" <?if ($akttag='07'){?>selected<?}?>>07</option>  
    <option value="08" <?if ($akttag='08'){?>selected<?}?>>08</option>  
    <option value="09" <?if ($akttag='09'){?>selected<?}?>>09</option>  
    <option value="10" <?if ($akttag='10'){?>selected<?}?>>10</option>  
    <option value="11" <?if ($akttag='11'){?>selected<?}?>>11</option>  
    <option value="12" <?if ($akttag='12'){?>selected<?}?>>12</option>  
    <option value="13" <?if ($akttag='13'){?>selected<?}?>>13</option>  
    <option value="14" <?if ($akttag='14'){?>selected<?}?>>14</option>  
    <option value="15" <?if ($akttag='15'){?>selected<?}?>>15</option>  
    <option value="16" <?if ($akttag='16'){?>selected<?}?>>16</option>  
    <option value="17" <?if ($akttag='17'){?>selected<?}?>>17</option>  
    <option value="18" <?if ($akttag='18'){?>selected<?}?>>18</option>  
    <option value="19" <?if ($akttag='19'){?>selected<?}?>>19</option>  
    <option value="20" <?if ($akttag='20'){?>selected<?}?>>20</option>  
    <option value="21" <?if ($akttag='21'){?>selected<?}?>>21</option>  
    <option value="22" <?if ($akttag='22'){?>selected<?}?>>22</option>  
    <option value="23" <?if ($akttag='23'){?>selected<?}?>>23</option>  
    <option value="24" <?if ($akttag='24'){?>selected<?}?>>24</option>  
    <option value="25" <?if ($akttag='25'){?>selected<?}?>>25</option>  
    <option value="26" <?if ($akttag='26'){?>selected<?}?>>26</option>  
    <option value="27" <?if ($akttag='27'){?>selected<?}?>>27</option>  
    <option value="28" <?if ($akttag='28'){?>selected<?}?>>28</option>  
    <option value="29" <?if ($akttag='29'){?>selected<?}?>>29</option>  
    <option value="30" <?if ($akttag='30'){?>selected<?}?>>30</option>  
    <option value="31" <?if ($akttag='31'){?>selected<?}?>>31</option>  
    </select>
    </td>
    <td>
    <select name="monat" size="1" >  
    <option value="01" <?if ($aktmonat='01') { ?>selected<?}?>>Januar</option>  
    <option value="02" <?if ($aktmonat='02') { ?>selected<?}?>>Februar</option>  
    <option value="03" <?if ($aktmonat='03') { ?>selected<?}?>>März</option>  
    <option value="04" <?if ($aktmonat='04') { ?>selected<?}?>>April</option>  
    <option value="05" <?if ($aktmonat='05') { ?>selected<?}?>>Mai</option>  
    <option value="06" <?if ($aktmonat='06') { ?>selected<?}?>>Juni</option>  
    <option value="07" <?if ($aktmonat="07") { ?>selected<?}?> >Juli</option>  
    <option value="08" <?if ($aktmonat='08') { ?>selected<?}?>>August</option>  
    <option value="09" <?if ($aktmonat='09') { ?>selected<?}?>>September</option>  
    <option value="10" <?if ($aktmonat='10') { ?>selected<?}?>>Oktober</option>  
    <option value="11" <?if ($aktmonat='11') { ?>selected<?}?>>November</option>  
    <option value="12" <?if ($aktmonat='12') { ?>selected<?}?>>Dezember</option>  
    </select>
     </td>
     <td>
    <select name="jahr" size="1" >  
    <option value="2009" <?if ($aktjahr="09"){ ?>selected<?}?> >2009</option>  
    <option value="2010" <?if ($aktjahr='10'){ ?>selected<?}?>>2010</option>  
    <option value="2011" <?if ($aktjahr='11'){ ?>selected<?}?>>2011</option>  
    <option value="2012" <?if ($aktjahr='12'){ ?>selected<?}?>>2012</option>  
    <option value="2013" <?if ($aktjahr='13'){ ?>selected<?}?>>2013</option>  
    <option value="2014" <?if ($aktjahr='14'){ ?>selected<?}?>>2014</option>  
    <option value="2015" <?if ($aktjahr='15'){ ?>selected<?}?>>2015</option>  
    <option value="2016" <?if ($aktjahr='16'){ ?>selected<?}?>>2016</option>  
    <option value="2017" <?if ($aktjahr='17'){ ?>selected<?}?>>2017</option>  
    <option value="2018" <?if ($aktjahr='18'){ ?>selected<?}?>>2018</option>  
    <option value="2019" <?if ($aktjahr='19'){ ?>selected<?}?>>2019</option>  
    <option value="2020" <?if ($aktjahr='20'){ ?>selected<?}?>>2020</option>  
    </select>
     </td>





    <table align="left" valign="top"   >  
    <tr>
    <td>Personalnummer</td>
    <td><input name="personal" value = "<?=$_SESSION['userid']?>" ></td>  
    </tr>
    <tr>
    <td>Projektnummer</td>
    <td><input name="projekt" ></td>  
    </tr>
    <tr>
    <td>Auftragsnummer</td>
    <td><input name="auftrag" ></td>  
    </tr>
    <tr>
    <td>Kundenname</td>
    <td><input name="kunde"></td>  
    </tr>
    <tr>
    <td>Stunden</td>
    <td><input name="stunden"></td>  
    </tr>
    <tr>
    <td>
    <input type="submit" value="Absenden"><br>  
    </td>
    <td><input type="reset" value="Abbrechen">  
    </td>
    </tr>
   </table>
   </form>
 <br><br>

Ich schreibe die date-Informationen in eine Variable, und denke, daß beo einer if Abfrage das richtige Ergebnis raus kommt. Das Ergebnis ist aber immer der letzte Datensatz, also immer der 31.12.2020.

Mache ich da einen Denkfehler oder stimmt nur die Syntax nicht?

Jede Idee hilft weiter, wie immer.

Vielen Dank
und schöne Grüße

Christof

Content-Key: 119858

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

Printed on: April 19, 2024 at 20:04 o'clock

Member: kaiand1
kaiand1 Jul 06, 2009 at 19:24:22 (UTC)
Goto Top
Tjo
manchmal sieht man den Wald vor lauter Bäume nicht face-smile
Du schreibst
<option value="01" <?if ($akttag='01'){?>selected<?}?>>01</option>
Wenn mann sich deine IF Abfrage nun anschaut sieht mann das der keine möglichkeit zum Vergleichen hat.
Mit $akttag='01 weist du der Variabel $akttag die Zahl 01 zu
Zum vergleichen müßte es aber $akttag == '01' heißen
Zuweißen ist immer nur das = da zum vergleichen größer kleiner sind es 2 Zeichen == >= ect...
Member: Coder2007
Coder2007 Jul 06, 2009 at 21:14:25 (UTC)
Goto Top
Hi,

also ich habe das mal wie folgt gemacht, (nur für den Monat):
    $monat = array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");  
    $mm = date("n")-1;  
      echo'<option value="'.date(m).'" selected>'.$monat[$mm].'</option>';  
      echo'<option value="01">----------------</option>  
      <option value="01">Januar</option>  
      <option value="02">Februar</option>  
      <option value="03">M&auml;rz</option>  
      <option value="04">April</option>  
      <option value="05">Mai</option>  
      <option value="06">Juni</option>  
      <option value="07">Juli</option>  
      <option value="08">August</option>  
      <option value="09">September</option>  
      <option value="10">Oktober</option>  
      <option value="11">November</option>  
      <option value="12">Dezember</option>  
    </select> ';  

Vielleicht hilft es Dir weiter....

Coder
Member: gechger
gechger Jul 06, 2009 at 21:56:33 (UTC)
Goto Top
Bingo Kaiand,

das wars! Hab die == nicht beachtet. Jetzt funktioniert es.

@Coder:
Vielen Dank für Deinen Tip (den ich übrigens nicht verstehe). Aber macht ja nichts. Mein simpler Ansatz funktioniert ja jetzt.

Vielen Dank an Euch alle.
Schöne Grüße
Christof
Member: dog
dog Jul 07, 2009 at 12:19:20 (UTC)
Goto Top
Christof, lern' doch bitte endlich mal den Umgang mit Schleifen!

Das ganze gewusel:
<option value="01" <?if ($akttag='01'){?>selected<?}?>>01</option>  
    <option value="02" <?if ($akttag='02'){?>selected<?}?>>02</option>  
    <option value="03" <?if ($akttag='03'){?>selected<?}?>>03</option>  
    <option value="04" <?if ($akttag='04'){?>selected<?}?>>04</option>  
    <option value="05" <?if ($akttag='05'){?>selected<?}?>>05</option>  
    <option value="06" <?if ($akttag="06"){?>selected<?}?> >06</option>  
    <option value="07" <?if ($akttag='07'){?>selected<?}?>>07</option>  
    <option value="08" <?if ($akttag='08'){?>selected<?}?>>08</option>  
    <option value="09" <?if ($akttag='09'){?>selected<?}?>>09</option>  
    <option value="10" <?if ($akttag='10'){?>selected<?}?>>10</option>  
    <option value="11" <?if ($akttag='11'){?>selected<?}?>>11</option>  
    <option value="12" <?if ($akttag='12'){?>selected<?}?>>12</option>  
    <option value="13" <?if ($akttag='13'){?>selected<?}?>>13</option>  
    <option value="14" <?if ($akttag='14'){?>selected<?}?>>14</option>  
    <option value="15" <?if ($akttag='15'){?>selected<?}?>>15</option>  
    <option value="16" <?if ($akttag='16'){?>selected<?}?>>16</option>  
    <option value="17" <?if ($akttag='17'){?>selected<?}?>>17</option>  
    <option value="18" <?if ($akttag='18'){?>selected<?}?>>18</option>  
    <option value="19" <?if ($akttag='19'){?>selected<?}?>>19</option>  
    <option value="20" <?if ($akttag='20'){?>selected<?}?>>20</option>  
    <option value="21" <?if ($akttag='21'){?>selected<?}?>>21</option>  
    <option value="22" <?if ($akttag='22'){?>selected<?}?>>22</option>  
    <option value="23" <?if ($akttag='23'){?>selected<?}?>>23</option>  
    <option value="24" <?if ($akttag='24'){?>selected<?}?>>24</option>  
    <option value="25" <?if ($akttag='25'){?>selected<?}?>>25</option>  
    <option value="26" <?if ($akttag='26'){?>selected<?}?>>26</option>  
    <option value="27" <?if ($akttag='27'){?>selected<?}?>>27</option>  
    <option value="28" <?if ($akttag='28'){?>selected<?}?>>28</option>  
    <option value="29" <?if ($akttag='29'){?>selected<?}?>>29</option>  
    <option value="30" <?if ($akttag='30'){?>selected<?}?>>30</option>  
    <option value="31" <?if ($akttag='31'){?>selected<?}?>>31</option>  

Was bei mir auch noch Kopfschmerzen produziert kann man auch schreiben als:
<?php for ($i=1; $i <= 31; $i++): ?>
	<option <?php echo (($akttag == $i)? 'selected="selected"' : '') ?>><?php echo $i ?></option>  
<?php endfor; ?>

Und benutze nicht die Short-Open-Tags (<?) - die fliegen in einer der nächsten PHP-Versionen raus und du wunderst dich, warum dein Code nicht mehr geht.

Grüße

Max