2017-03-02 7 views
2

Ich möchte das aktuelle Datum standardmäßig festlegen, aber es funktioniert nur auf Jahr wählen (der letzte).HTML-Select-Option ausgewählt funktioniert nicht

Ich möchte Javascript in diesem Fall nicht verwenden. Nur html und php.

Ich habe bereits "selected = 'selected'" und "autocomplete = off" ausprobiert, wie in anderen Posts gezeigt.

Hier mein Code

<form id="form-orders-date" onsubmit="selectOrdersDate();"> 
        <select id="orders-day"> 
         <?php 
         for ($i=1; $i <= 31; $i++) { 
          if (sprintf('%02d', $i) == date("d")) { 
           echo "<option value=\"".sprintf('%02d', $i)."\" selected>".sprintf('%02d', $i)."</option>"; 
          } 
          else{ 
           echo "<option value=\"".sprintf('%02d', $i)."\">".sprintf('%02d', $i)."</option>" ; 
          } 
         } 
         ?> 
        </select> 
        <select id="orders-month"> 
         <?php 
         for ($i=1; $i <= 12; $i++) { 
          if (sprintf('%02d', $i) == date("m")) { 
           echo "<option value=\"".sprintf('%02d', $i)."\" selected>".sprintf('%02d', $i)."</option>"; 
          } 
          else{ 
           echo "<option value=\"".sprintf('%02d', $i)."\">".sprintf('%02d', $i)."</option>" ; 
          } 
         } 
         ?> 
        </select> 
        <select id="orders-year"> 
         <?php 
         for ($i=2012; $i <= 2020; $i++) { 
          if (sprintf('%02d', $i) == date("Y")) { 
           echo "<option value=\"".sprintf('%02d', $i)."\" selected>".sprintf('%02d', $i)."</option>"; 
          } 
          else{ 
           echo "<option value=\"".sprintf('%02d', $i)."\">".sprintf('%02d', $i)."</option>" ; 
          } 
         } 
         ?> 
        </select> 
        <input type="submit" value="OK" /> 
</form> 

hier die einfache HTML, wenn die PHP ausgeführt wurde:

<form id="form-orders-date" onsubmit="selectOrdersDate();"> 
 
    <select id="orders-day"> 
 
     <option value="01">01</option> 
 
     <option value="02" selected>02</option> 
 
     <option value="03">03</option> 
 
     <option value="04">04</option> 
 
     <option value="05">05</option> 
 
     <option value="06">06</option> 
 
     <option value="07">07</option> 
 
     <option value="08">08</option> 
 
     <option value="09">09</option> 
 
     <option value="10">10</option> 
 
     <option value="11">11</option> 
 
     <option value="12">12</option> 
 
     <option value="13">13</option> 
 
     <option value="14">14</option> 
 
     <option value="15">15</option> 
 
     <option value="16">16</option> 
 
     <option value="17">17</option> 
 
     <option value="18">18</option> 
 
     <option value="19">19</option> 
 
     <option value="20">20</option> 
 
     <option value="21">21</option> 
 
     <option value="22">22</option> 
 
     <option value="23">23</option> 
 
     <option value="24">24</option> 
 
     <option value="25">25</option> 
 
     <option value="26">26</option> 
 
     <option value="27">27</option> 
 
     <option value="28">28</option> 
 
     <option value="29">29</option> 
 
     <option value="30">30</option> 
 
     <option value="31">31</option> 
 
    </select> 
 
    <select id="orders-month"> 
 
     <option value="01">01</option> 
 
     <option value="02">02</option> 
 
     <option value="03" selected>03</option> 
 
     <option value="04">04</option> 
 
     <option value="05">05</option> 
 
     <option value="06">06</option> 
 
     <option value="07">07</option> 
 
     <option value="08">08</option> 
 
     <option value="09">09</option> 
 
     <option value="10">10</option> 
 
     <option value="11">11</option> 
 
     <option value="12">12</option> 
 
    </select> 
 
    <select id="orders-year"> 
 
     <option value="2012">2012</option> 
 
     <option value="2013">2013</option> 
 
     <option value="2014">2014</option> 
 
     <option value="2015">2015</option> 
 
     <option value="2016">2016</option> 
 
     <option value="2017" selected>2017</option> 
 
     <option value="2018">2018</option> 
 
     <option value="2019">2019</option> 
 
     <option value="2020">2020</option> 
 
    </select> 
 
    <input type="submit" value="OK" /> 
 
</form>

+0

Können Sie die einfache HTML hinzuzufügen, wenn der PHP ausgeführt wurde? Es erleichtert das Lesen. –

+0

ja, du hast Recht – ilrenzo

Antwort

0

Dies ist der Code, den Sie für suchen sind Denken Sie daran, zu verwenden, einfache Anführungszeichen ('), wenn doppelte Anführungszeichen innerhalb des PHP-Echos enthalten sind, oder wenn doppelte Anführungszeichen verwendet werden, \ "innerhalb des äußeren Anführungszeichen.

<form id="form-orders-date" onsubmit="selectOrdersDate();"> 
        <select id="orders-day"> 
         <?php 
         for ($i=1; $i <= 31; $i++) { 
          if ($i == date("d")) { 
           echo '<option value="'.$i.'" selected>'.$i.'</option>'; 
          } 
          else{ 
           echo '<option value="'.$i.'">'.$i.'</option>'; 
          } 
         } 
         ?> 
        </select> 
        <select id="orders-month"> 
         <?php 
         for ($i=1; $i <= 12; $i++) { 
          if ($i == date("m")) { 
           echo '<option value="'.$i.'" selected>'.$i.'</option>'; 
          } 
          else{ 
           echo '<option value="'.$i.'">'.$i.'</option>'; 
          } 
         } 
         ?>       
        </select> 
        <select id="orders-year"> 
         <?php 
         for ($i=2012; $i <= 2020; $i++) { 
          if ($i == date("Y")) { 
           echo '<option value="'.$i.'" selected>'.$i.'</option>'; 
          } 
          else{ 
           echo '<option value="'.$i.'">'.$i.'</option>'; 
          } 
         } 
         ?> 
        </select> 
+0

danke, es funktioniert gut, aber ich verstehe nicht, warum, ich meine: der endgültige HTML-Code ist genau das gleiche, mit den "ausgewählten" Optionen an den gleichen Orten – ilrenzo

+0

wie gesagt einfache Anführungszeichen ('), wenn doppelte Anführungszeichen innerhalb des PHP-Echos enthalten sind, oder wenn doppelte Anführungszeichen verwendet werden, \ "innerhalb der äußeren Anführungszeichen. –

+0

Das bedeutet $ name =" ilrenzo "; echo" Mein Name ist "". $ name. ""; wird nicht funktionieren aber: echo 'Mein Name ist' '. $ name.' "; wird funktionieren. Die Ausgabe wird sein: Mein Name ist "ilrenzo" –

0

Können Sie so versuchen.

<form id="form-orders-date" onsubmit="selectOrdersDate();"> 
<select id="orders-day"> 
<?php 
    for ($i=1; $i <= 31; $i++) { 
     if ($i == date("d")) { 
      echo "<option value='$i' selected='selected'>$i</option>"; 
     } else { 
      echo "<option value='$i'>$i</option>"; 
     } 
    } 
?>     
</select> 
<select id="orders-month"> 
    for ($i=1; $i <= 12; $i++) { 
     if ($i == date("m")) { 
     echo "<option value='$i' selected='selected'>$i</option>"; 
     } else { 
     echo "<option value='$i'>$i</option>"; 
     } 
    }    
</select> 
<select id="orders-year"> 
<?php 
    for ($i=2012; $i <= 2020; $i++) { 
    if ($i == date("Y")) { 
     echo "<option value='$i' selected='selected'>$i</option>"; 
    } else { 
     echo "<option value='$i'>$i</option>"; 
    } 
}    
?> 
</select> 
&nbsp;&nbsp;<input type="submit" value="OK" /> 
</form> 
0

Hier ist ein kompakter Art und Weise, dies zu erreichen:

<form id="form-orders-date" onsubmit="selectOrdersDate();"> 
    <select id="orders-day"> 
     <?php for ($d = 1; $d <= 31; $d++) { ?> 
      <option value="<?php echo $d; ?>" <?php if ($d == date('j')) { echo 'selected'; ?>><?php echo $d; ?></option> 
     <?php } ?> 
    </select> 
    <select id="orders-month"> 
     <?php for ($m = 1; $m <= 12; $m++) { ?> 
      <option value="<?php echo $m; ?>" <?php if ($m == date('n')) { echo 'selected'; ?>><?php echo $m; ?></option> 
     <?php } ?> 
    </select> 
    <select id="orders-year"> 
     <?php for ($y = 2012; $y <= 2020; $y++) { ?> 
      <option value="<?php echo $y; ?>" <?php if ($y == date('Y')) { echo 'selected'; ?>><?php echo $y; ?></option> 
     <?php } ?> 
    </select> 
    &nbsp;&nbsp; 
    <input type="submit" value="OK" /> 
</form> 
0

Ich weiß, Sie sagten, Sie dies bereits versucht, aber Ihr Beispielcode zeigt es nicht. Hier ist, wie Ihr Tag gebildet werden sollte:

<select> 
<option value="01">01</option> 
<option value="02" selected="selected">02</option> 
<option value="03">03</option> 
... 
</select> 

Ihr Beispiel oben sieht für das ausgewählte Element sehr unterschiedlich aus. Ich würde vorschlagen, jedes in Ihrem Browser eingebaute Inspektionswerkzeug zu verwenden, um zu sehen, was genau gerendert wurde, und das wird wahrscheinlich die Lösung offensichtlich machen.

Als Referenz finden Sie unter:

Definition of select tag

Definition of option tag

Verwandte Themen