使用for循环自定义计算器(窗体)

时间:2019-03-20 12:06:32

标签: php forms calculator

我有以下代码,可作为表格/计算器来计算公共汽车租金价格和预订。该表格包含以下字段:日,月,时间和其他。我必须说这不是我的代码,我只是必须对其进行自定义。

我需要选择一个月时,根据该月显示的天数。例如,如果是2020年2月,则无论选择什么,在适当的字段中应该有29天,而不是现在所有月份的31天。我每个月都需要30天。

这是我需要更改的代码的一部分:

<?php 
echo "
<div><select id='diena' name='diena' onchange=\"document.getElementById('yo').innerHTML = '';\">
";
  for ($i=1; $i<32; $i++) echo "<option value='$i'". ($i == (date('d') + 1) ? ' selected' : '') .">$i</option>";
echo "
</select>
<select name='menesis' class='menesis' onchange=\"document.getElementById('yo').innerHTML = '';\">
";
  $m = array(1 => 'Janvāris', 'Februāris', 'Marts', 'Aprīlis', 'Maijs', 'Jūnijs', 'Jūlijs', 'Augusts', 'Septembris', 'Oktobris', 'Novembris', 'Decembris');
  $m2 = array(1 => 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
  $m3 = array(1 => 'январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь');
  $m4 = array(1 => 'Januar', 'Februar', 'März', 'April', 'Mai', 'June', 'Juli', 'August', 'September', 'October', 'November', 'December');
  
  if ($lang == '3') {
   for ($i=1; $i<13; $i++) echo "<option value='". $m2[$i] ."'". (isset($_POST['menesis']) ? ($_POST['menesis'] == $m2[$i] ? ' selected' : '') : ($i == date('m') ? ' selected' : '')) .">". ($i >= date('m') ? $m3[$i] .", ". date('Y') : $m3[$i] .", ". (date('Y')+1)) ."</option>";
  } elseif ($lang == '4') {
    for ($i=1; $i<13; $i++) echo "<option value='". $m2[$i] ."'". (isset($_POST['menesis']) ? ($_POST['menesis'] == $m2[$i] ? ' selected' : '') : ($i == date('m') ? ' selected' : '')) .">". ($i >= date('m') ? $m4[$i] .", ". date('Y') : $m4[$i] .", ". (date('Y')+1)) ."</option>";
  } elseif ($lang == '2') {
    for ($i=1; $i<13; $i++) echo "<option value='". $m2[$i] ."'". (isset($_POST['menesis']) ? ($_POST['menesis'] == $m2[$i] ? ' selected' : '') : ($i == date('m') ? ' selected' : '')) .">". ($i >= date('m') ? $m2[$i] .", ". date('Y') : $m2[$i] .", ". (date('Y')+1)) ."</option>";
  } else {
    for ($i=1; $i<13; $i++) echo "<option value='". $m2[$i] ."'". (isset($_POST['menesis']) ? ($_POST['menesis'] == $m2[$i] ? ' selected' : '') : ($i == date('m') ? ' selected' : '')) .">". ($i >= date('m') ? $m[$i] .", ". date('Y') : $m[$i] .", ". (date('Y')+1)) ."</option>";
  } 
echo "
</select>
<select name='laiks' onchange=\"document.getElementById('yo').innerHTML = '';\">
";
  for ($i=1; $i<25; $i++) echo "<option value='$i:00'". ($i == 9 ? ' selected' : '') .">". str_pad($i, 2, '0', STR_PAD_LEFT) .":00</option>";
echo "
</select>
</div>

<div><label for='diena2'></label> <select id='diena2' name='diena2' onchange=\"document.getElementById('yo').innerHTML = '';\">
";
  for ($i=1; $i<32; $i++) echo "<option value='$i'". ($i == (date('d') + 1) ? ' selected' : '') .">$i</option>";
echo "
</select>
<select name='menesis2' class='menesis' onchange=\"document.getElementById('yo').innerHTML = '';\">
";
  if ($lang == '3') {
    for ($i=1; $i<13; $i++) echo "<option value='". $m2[$i] ."'". (isset($_POST['menesis']) ? ($_POST['menesis'] == $m2[$i] ? ' selected' : '') : ($i == date('m') ? ' selected' : '')) .">". ($i >= date('m') ? $m3[$i] .", ". date('Y') : $m3[$i] .", ". (date('Y')+1)) ."</option>";
  } elseif ($lang == '4') {
    for ($i=1; $i<13; $i++) echo "<option value='". $m2[$i] ."'". (isset($_POST['menesis']) ? ($_POST['menesis'] == $m2[$i] ? ' selected' : '') : ($i == date('m') ? ' selected' : '')) .">". ($i >= date('m') ? $m4[$i] .", ". date('Y') : $m4[$i] .", ". (date('Y')+1)) ."</option>";
  } elseif ($lang == '2') {
    for ($i=1; $i<13; $i++) echo "<option value='". $m2[$i] ."'". (isset($_POST['menesis']) ? ($_POST['menesis'] == $m2[$i] ? ' selected' : '') : ($i == date('m') ? ' selected' : '')) .">". ($i >= date('m') ? $m2[$i] .", ". date('Y') : $m2[$i] .", ". (date('Y')+1)) ."</option>";
  } else {
    for ($i=1; $i<13; $i++) echo "<option value='". $m2[$i] ."'". (isset($_POST['menesis']) ? ($_POST['menesis'] == $m2[$i] ? ' selected' : '') : ($i == date('m') ? ' selected' : '')) .">". ($i >= date('m') ? $m[$i] .", ". date('Y') : $m[$i] .", ". (date('Y')+1)) ."</option>";
  }
echo "
</select>
<select name='laiks2' onchange=\"document.getElementById('yo').innerHTML = '';\">
";
  for ($i=1; $i<25; $i++) echo "<option value='$i:00'". ($i == 9 ? ' selected' : '') .">". str_pad($i, 2, '0', STR_PAD_LEFT) .":00</option>";
echo "
</select>
</div>

 </div>

</div>";
?>

希望我会在这里找到帮助。

1 个答案:

答案 0 :(得分:0)

即使您的代码写得不好并且我没有完全阅读它,您也可以尝试使用输入类型date来提供日期选择器。如果还需要时间,您可以简单地添加另一个输入类型时间。

<input type="date" id="start" name="booking-start"
       value="2018-07-22">
       
<input type="date" id="end" name="booking-end"
       value="2018-07-28">