Настроить калькулятор (форму), используя для цикла - PullRequest
0 голосов
/ 20 марта 2019

У меня есть следующий код, который работает как форма / калькулятор для расчета стоимости аренды автобуса и бронирования. Эта форма содержит поля, такие как: день, месяц, время и другие. Я должен сказать, что это не мой код, я просто должен его настроить.

Мне нужно, чтобы при выборе месяца количество дней отображалось в соответствии с месяцем. Например, если это февраль 2020 года, то в соответствующем поле должно быть 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 голосов
/ 20 марта 2019

Даже если ваш код написан плохо, и я не прочитал его полностью, вы можете просто попытаться использовать тип ввода даты для предложения выбора даты. Если вам нужно время, вы можете просто добавить другое время ввода.

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