使用循环自定义计算器(表单)



我有以下代码,可作为公交租金价格计算和预订的表格/计算器。此表格包含:日,月,时间和其他类似的字段。我必须说这不是我的代码,我只需要自定义。

我需要在选择一个月时,按照月份出现的天数。例如,如果是2020年2月,那么在适当的领域中,应该有29天,而不是31天,而不论选择如何,现在都应该有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>";
?>

希望我在这里找到帮助。

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

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

最新更新