КАК отобразить javascript вывод в текстовом поле html - PullRequest
0 голосов
/ 18 июня 2020

У меня есть скрипт, который помогает рассчитывать рабочие дни между двумя днями с помощью JavaScript, но я хочу отправить результат в базу данных MySQL. Как значение в конце кода "dif", который выводится в диапазоне для записи в базу данных mysql, или если я могу поместить его в текстовое поле и в конечном итоге опубликовать в базе данных

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head><body>
<script>
$(document).ready(() => {
  $('#calc').click(() => {
  var d1 = $('#d1').val();
  var d2 = $('#d2').val();
    $('#dif').text(workingDaysBetweenDates(d1,d2));
  });
});

let workingDaysBetweenDates = (d0, d1) => {
  /* Two working days and an sunday (not working day) */
  var holidays = ['2020/04/06', '2020/06/04', '06/04/2020','04/06/2020'];
  var startDate = parseDate(d0);
  var endDate = parseDate(d1);  

// Validate input
  if (endDate < startDate) {
    return 0;
  }

// Calculate days between dates
  var millisecondsPerDay = 86400 * 1000; // Day in milliseconds
  startDate.setHours(0, 0, 0, 1);  // Start just after midnight
  endDate.setHours(23, 59, 59, 999);  // End just before midnight
  var diff = endDate - startDate;  // Milliseconds between datetime objects    
  var days = Math.ceil(diff / millisecondsPerDay);

  // Subtract two weekend days for every week in between
  var weeks = Math.floor(days / 7);
  days -= weeks * 2;

  // Handle special cases
  var startDay = startDate.getDay();
  var endDay = endDate.getDay();
    
  // Remove weekend not previously removed.   
  if (startDay - endDay > 1) {
    days -= 2;
  }
  // Remove start day if span starts on Sunday but ends before Saturday
  if (startDay == 0 && endDay != 6) {
    days--;  
  }
  // Remove end day if span ends on Saturday but starts after Sunday
  if (endDay == 6 && startDay != 0) {
    days--;
  }
  /* Here is the code */
  holidays.forEach(day => {
    if ((day >= d0) && (day <= d1)) {
      /* If it is not saturday (6) or sunday (0), substract it */
      if ((parseDate(day).getDay() % 6) != 0) {
        days--;
      }
    }
  });
  return days;
}
           
function parseDate(input) {
	// Transform date from text to date
  var parts = input.match(/(\d+)/g);
  // new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]])
  return new Date(parts[0], parts[1]-1, parts[2]); // months are 0-based
}
</script>
<input type="date" id="d1" value="06/06/2020"><br>
<input type="date" id="d2" value="05/06/2020">

<p>Working days count: <span id="dif"></span></p>
<button id="calc">Calc</button>
</body>
</html>

база данных, пожалуйста, помогите вот сценарий.

1 Ответ

0 голосов
/ 18 июня 2020

Чтобы отправить какие-либо данные в базу данных, вам необходимо использовать POST-запрос к вашему серверу. Для этого вам нужно обернуть все, что вы планируете отправить в базу данных (в вашем случае - dif), в элемент формы HTML. Внутри элемента формы сохраните эту переменную diff как значение элемента ввода (вы можете скрыть этот элемент, если используете sh), а затем используйте вызов AJAX или HTTP-запрос для отправки этих данных на сервер.

Для получения дополнительной информации о том, как применить это к вашей ситуации, просмотрите это небольшое краткое изложение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...