Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 所选的HTML选择选项不起作用_Php_Html_Html Select - Fatal编程技术网

Php 所选的HTML选择选项不起作用

Php 所选的HTML选择选项不起作用,php,html,html-select,Php,Html,Html Select,我想在默认情况下设置当前日期,但它仅在选择年份(最后一个)时有效。 我不想在这种情况下使用javascript。只需html和php 我已经尝试过“selected='selected'”和“autocomplete=off”,如其他帖子所示 这是我的密码 <form id="form-orders-date" onsubmit="selectOrdersDate();"> <select id="orders-day">

我想在默认情况下设置当前日期,但它仅在选择年份(最后一个)时有效。

我不想在这种情况下使用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:


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
01
02
03
04
05
06
07
08
09
10
11
12
2012
2013
2014
2015
2016
2017
2018
2019
2020

这就是您要查找的代码 记住在php回显中包含双引号时使用单引号('),如果在外部双引号中使用双引号,则使用\”

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

你能这样试试吗

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


这里有一个更简洁的方法来实现这一点:

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


我知道你说过你已经试过了,但是你的示例代码没有显示出来。下面是你的标签的格式:

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

01
02
03
...
对于所选元素,上面的示例看起来非常不同。我建议使用web浏览器中内置的任何检查工具来查看渲染的内容,这可能会使解决方案变得明显

有关参考,请参阅:


您是否尝试过将autocomplete=“off”用于select?它对我有效。

在PHP运行后,您可以添加普通HTML吗?它使阅读更容易。是的,您说得对。谢谢,它工作得很好,但我不明白为什么,我的意思是:最终生成的HTML代码与“selected”完全相同“与我所说的相同位置的选项在php echo中包含双引号时使用单引号('),如果使用双引号,则在外部双引号中使用\”。这意味着$name=“ilrenzo”;echo“我的名字是”。$name。”;不起作用,但:echo'My name is'。$name.';会有用的。输出将是:我的名字是“ilrenzo”