2017-03-02 34 views
2

デフォルトでは現在の日付を設定したいが、それは年の選択(最後のもの)でのみ機能する。HTML選択オプションが選択されていません

私はこの場合にjavascriptを使用したくありません。ちょうどhtmlphpです。

私はすでに "selected = 'selected'"と "autocomplete = off"を別の他の投稿に示すように試しています。

ここに私のコードここ

<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> 

PHPが実行されたプレーンなHTML:

<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

あなたはPHPが実行されたプレーンなHTMLを追加することはできますか?それは読みやすくします。 –

+0

はい、あなたは正しいです – ilrenzo

答えて

0

をこれは、あなたが使用することを忘れないでください を探しているコードです二重引用符を含むときは一重引用符( ')、二重引用符を使用する場合は\ "を外部で使用する二重引用符。

<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

ありがとう、それはうまくいきますが、なぜ私は意味しません:最終的なHTML生成コードは全く同じ場所で "選択"オプションを使用して同じです – ilrenzo

+0

私は言った二重引用符を含む場合は一重引用符( ')、二重引用符を使用する場合は二重引用符を使用する場合は\ "を使用します。 –

+0

つまり、$ name =" ilrenzo "; echo" My name is ""。 ""; でも動作しません: echo '私の名前は "'。$ name。 '";働くでしょう。 出力は です。私の名前は「ilrenzo」です。 –

0

このようにお試しいただけますか?

<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

ここでは、これを達成するためのよりコンパクトな方法です:

<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

私はあなたはすでにこれを試してみましたが、あなたのサンプルコードがそれを示していないと述べた知っています。あなたのタグがどのように形成されるのかは次のとおりです。

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

あなたの例は、選択した要素と大きく異なっています。あなたのWebブラウザに組み込まれている検査ツールを使って正確に何がレンダリングされたのかを確認することをお勧めします。

参考までに、以下を参照してください。

Definition of select tag

Definition of option tag

関連する問題