Вызов функции при изменении значений средства выбора даты
Я сохраняю переменные сеанса для хранения дат на своем веб-сайте. Такие как:
<php $_SESSION['checkin'];
$_SESSION['checkout']; ?>
Но когда кто-то изменил даты в средстве выбора дат, значения переменных сеанса должны быть изменены в соответствии с выбранными значениями. Я пытался использовать вызов ajax для установки переменных.Это HTML-код и функция javascript для вышеупомянутой задачи.
HTML-код
<div id="reportrange" class="selectbox " style="border: 1px solid #ddd; border-radius: 4px; padding:5px; background: #fff; cursor: pointer; margin: 0 0 4px 0;overflow: hidden; white-space: nowrap;">
<i class="glyphicon glyphicon-calendar fa fa-calendar"></i>
<input type="hidden" onchange="changeSession()" name="selectdaterange" id="selectdaterange" value="<?php echo $_SESSION['checkin'] ?> - <?php echo $_SESSION['checkout']?>" disabled/>
</div>
Код JAVASCRIPT
<script type="text/javascript">
$(function() {
alert("dhgfhgfhf");
// var start = moment().add(1, 'days');
// var end = moment().add(2, 'days');
var start = moment('<?php echo $_SESSION['
checkin '] ?>', 'MM/DD/YYYY');
var end = moment('<?php echo $_SESSION['
checkout '] ?>', 'MM/DD/YYYY');
var min_date = moment().add(1, 'days');
function cb(start, end) {
$('#selectdaterange').val(start.format('MM/DD/YYYY') + ' - ' + end.format('MM/DD/YYYY'));
$('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
// changeSession(); // alert (start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
}
$('#reportrange').daterangepicker({
"autoApply": true,
"startDate": start,
"endDate": end,
"minDate": min_date,
"opens": "center"
}, cb);
cb(start, end);
});
function changeSession() {
alert("gfgf");
var start = document.getElementsByName('daterangepicker_start').value;
var end = document.getElementsByName('daterangepicker_end').value;
$.ajax({
type: 'POST',
data: 'checkin=' + start + '&checkout=' + end,
url: "<?php echo base_url(); ?>index.php/DateController/setHotelPageDate",
dataType: 'json',
cache: false,
success: function(response) {
alert("response.message");
}
});
}
</script>
Но, к сожалению, я попытался вызвать эту функцию sessionChange(), используя событие on change. Но это не работает. Я был бы очень признателен, если бы кто-нибудь смог мне в этом помочь.
1 answers
Если вы используете jQuery, я предлагаю вам использовать его полностью. Используйте .change()
, чтобы перехватить событие изменения. Удалите onchange=
из элемента ввода.
$(document).ready(function() {
$("#selectdaterange").change(function changeSession() {
alert("gfgf");
var start = document.getElementsByName('daterangepicker_start').value;
var end = document.getElementsByName('daterangepicker_end').value;
$.ajax({
type: 'POST',
data: 'checkin=' + start + '&checkout=' + end,
url: "<?php echo base_url(); ?>index.php/DateController/setHotelPageDate",
dataType: 'json',
cache: false,
success: function(response) {
alert("response.message");
}
});
});
});
Также обратите внимание, что событие изменения будет срабатывать только после того, как произойдет размытие.