2015-11-07 93 views
0

我有两个问题。这是我的代码(伊朗日历),问题是我想看到结果。年,月和日的所有值都显示为“$年”和“月”和“日”。使用下拉列表PHP

enter image description here

<?php 

      echo'<select dir="rtl" name="year">'; 
      for($year=1388;$year<=1410;$year++) 
      { 
      echo '<option value="$year">$year</option>'; 


      } 
echo'</select>'; 


echo'<select dir="rtl" name="month">'; 
for($month=1;$month<=12;$month++) 
      { 


      echo '<option value="$month">$month</option>'; 

      } 
echo'</select>'; 


echo'<select dir="rtl" name="day">'; 
for($day=1;$day<=31;$day++) 
      { 


      echo '<option value="$day">$day</option>'; 

      } 
echo'</select>'; 
      ?> 

第二个问题:

,我需要的另一件事。在伊朗日历月1日至6日有31天,7日至12日有30天,所以我需要一个条件表达式,当用户选择月1日至6日显示31天选择和当用户选择7至121日显示30天。

回答

3

您使用双引号内的单引号所以它会呈现为字符串。 做了相应的改变:你需要

JSFIDDLE

第一:

来源:

echo '<option value="$year">$year</option>'; 

要:

echo '<option value="'.$year.'">'.$year.'</option>'; 

echo '<option value="'.$month.'">'.$month.'</option>'; 

echo '<option value="'.$day.'">'.$day.'</option>'; 

编辑(回答你的第二个问题)给出id属性到您的select字段。

<select dir="rtl" name="month" id="month"> 

<select dir="rtl" name="day" id="day"> 

然后你需要添加检查,如果月大于6,因此将删除的最后一个选项(仅天31个)的一些jQuery代码。如果月份等于6或更少,则会添加新选项(仅在天数为30时)。

$('#month').on('change', function() { 
    var monthValue = $(this).val(); 
    var dayOptions = $('#day option').size(); 
    if (monthValue > 6 && monthValue <=12) { 
     if (dayOptions == 31) { 
      $("#day option:last").remove(); 
     } 
    } else if (monthValue >= 1 && monthValue <= 6) { 
     if (dayOptions == 30) { 
      $('#day').append($('<option>', { 
        value: 31, 
        text: 31 
       })); 
     } 
    } 
}); 
+0

请回答我的第二个问题。 – sammy

+1

你需要JavaScript for this。在月份将onChange事件绑定到相应的日期字段。 –

+0

只要他使用jQuery就会工作。 – Terminus

2

你需要使用".使用串联与' 所以这应该是:

echo '<option value="$day">$day</option>'; 

这样的:

echo '<option value="' . $day . '">' . $day . '</option>'; 

或本:

echo "<option value=\"$day\">$day</option>"; 
+0

请回答我的第二个问题.. – sammy

+0

@sajad这回答你的原始问题。如果你有另一个问题,然后问另一个问题http://stackoverflow.com/questions/ask,并在给出答案后不要改变事情。我回滚了你原来的问题。 –

+0

@ Fred-ii-我原来的问题有两个问题,我没有改变任何东西,你可以看到我的问题。 “”“”我需要更多的东西。在伊朗的日历月1日至6日有31天,7日至12日有30天,所以我需要一个条件表达式,当用户选择月1日至6日显示31天选择,当用户选择月7日至121日显示30天。“” “” – sammy