php
2012-08-06 175 views 0 likes 
0

我有一个出生日期,当用户结束二月(02)时,日期应该只能到29日。正如你可以看到我使用$month="1"只是为了测试它。我应该只使用PHP,没有JavaScript或其他任何东西。我将如何去做呢?php下拉检测选择

<?php 
$month="1"; // <-- currently using this to make it 29,30 or 31 days 

print "<select name='day'>"; 
if ($month==1){ 
    for ($i=0; $i<=28; $i++)  
    { 
     $day = 1 + $i; 
     print "<option value = $day>" . $day ."</option>"; 
    } 
} 
if ($month==2){ 
    for ($i=0; $i<=29; $i++) 
    { 
     $day = 1 + $i; 
     print "<option value = $day>" . $day ."</option>"; 
    } 
} 


print "</select>"; 

print "<select name='month'>"; 
for ($i=0; $i<=11; $i++) 
{ 

    $month = 1 + $i; 
    print "<option value = $month>" .$month ."</option>"; 
} 
print "</select>"; 

?>

+0

'$ month == 1''不是'$ month ==“1”.'否则它是一个字符串。 – Sablefoste 2012-08-06 16:16:59

+0

@Sable PHP评估'$ month == 1'和'$ month ==“1”'是一样的。 '$ month === 1'和'$ month ===“1”'是不同的。 – Matt 2012-08-06 16:22:51

+0

松散的比较实际上是一样的。这也是'true':'$ month ==“1 foo bar”'。 但是,如果他使用了严格的比较('$ month === x'),那将是一个不同的故事。 – 2012-08-06 16:23:45

回答

3

一旦PHP将东西给浏览器,它完成。它不能以任何方式影响页面。

另一方面,JavaScript在浏览器获取页面时接管。它可以改变页面,甚至可以要求服务器做一些事情(在这种情况下PHP可能会涉及)。

换句话说,你不能做你没有JavaScript的要求。

+0

@Sable我知道,但是当你去选择月02(feb)的时候,下拉的日子应该只限于29日 – bob12345 2012-08-06 16:20:10

+0

Kolink的声明依然存在。一旦PHP将页面发送到浏览器,它就不能再修改它。这包括在用户选择一个月后更改日期选项。 如果你真的不能使用JavaScript,那么你必须分两步进行日期选择:一个月/一年,一天。 – 2012-08-06 16:22:44

+0

@Kolink OP可以做到这一点,但它需要刷新页面。 – Matt 2012-08-06 16:26:33

0

没有Javascript,这是不可能的。

相关问题