Моя проблема здесь в том, что когда я пытаюсь отправить диапазон дат от начала до конца, он не может показать значение или переменную в моем файле date2.php и даже в журнале консоли (f12). В журнале консоли читается только " применить событие уволено .. блабла ". Остальные 4 console.info тоже не читаются. Я не знаю, что случилось ...
Мой код в date2.php
<div class = "x_content">
<div class = "well" style = "overflow: auto">
<div class = "col-md-4">
<div id = "reportrange_right" class = "pull-left" style = "background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc">
<i class = "glyphicon glyphicon-calendar fa fa-calendar"></i>
<span></span> <b class = "caret"></b>
</div>
</div>
</div>
</div>
<?php
echo "<script>document.writeln(startdate)</script>";
echo "<script>document.writeln(enddate)</script>";
?>
Код файла custom.js:
$('#reportrange_right').on('apply.daterangepicker', function(ev, picker) {
console.info("apply event fired, start/end dates are " + picker.startDate.format('MMMM D, YYYY') + " to " + picker.endDate.format('MMMM D, YYYY'));
var startdate = picker.startDate.format('MMMM D, YYYY');
var enddate = picker.endDate.format('MMMM D, YYYY');
console.info(startdate);
console.info(enddate);
console.info(picker.startDate.format('MMMM D, YYYY'));
$.post('date2.php', {
_startdate: startdate,
_enddate: enddate
}).done(function() {});
location.href = '../production/date2.php';
});
Это бы мне очень помогло. Спасибо!!
Я не устанавливал их на странице php, на самом деле я новичок в js
Тогда вы не сможете их записать в консоль. date2.php - это новый запрос / страница.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Думаю, я вижу вашу проблему. Это должно исправить. Это, конечно, должно сопровождаться всеми предупреждениями о том, правильно ли вы загружаете все свои js-файлы на date2.php. Я не могу объяснить все это в своем ответе.
<?php
//date2.php
$startDate = ""; //declaring start and end in case they come up empty in the if statement
$endDate = "";
if ($_POST{'_startDate']){
//Strictly speaking you don't need to make these in to new variables
//It's just easier to use them later.
$startDate = $_POST['_startDate'];
$endDate = $_POST['_endDate'];
//Now you can put the posted variables where you need them.
}
?>
<!-- You can also just write in the variables anywhere you like -->
<p><?php echo $startDate;?></p> <!-- for example -->
<div class = "x_content">
<div class = "well" style = "overflow: auto">
<div class = "col-md-4">
<div id = "reportrange_right" class = "pull-left" style = "background: #fff; cursor: pointer; padding: 5px 10px; border: 1px solid #ccc">
<i class = "glyphicon glyphicon-calendar fa fa-calendar"></i>
<span></span> <b class = "caret"></b>
</div>
</div>
</div>
</div>
<script>
var startDate = '<?php echo $startDate; ?>';
var endDate = '<?php echo $endDate; ?>';
console.info(startDate + " : " + endDate);
document.writeIn(startDate);
document.writeIn(endDate);
</script>
В PHP 7 вы можете просто: $startDate = $_POST['_startDate'] ?? '';. Это то же самое, что: $startDate = isset($_POST['_startDate']) ? $_POST['_startDate'] : '';
Я знаю, но то, как я это сделал, более читаемо в качестве примера. В общем, при необходимости я напишу немного больше кода, чтобы облегчить чтение, если это не повлияет на производительность.
Трудно сказать, так как я не знаю, что делает остальная часть вашего кода, и прошло некоторое время с тех пор, как я использовал средство выбора даты jQuery. Но предоставленный мной код перенесет ваши переменные в ваш файл date2.php, и вы сможете использовать их везде, где они нужны.
Очень признателен.
Не уверен, что вы на самом деле пытаетесь здесь сделать. Сначала вы публикуете сообщение с помощью Ajax, а затем в случае успеха перенаправляете клиента? Но это не тот файл, на который вы перенаправляете (разные URL-адреса)? Затем на вашем
date2.phpвы пытаетесь консольно регистрироватьstartdateиenddateв JS. Вы установили эти переменные js на этой странице? Зачем даже повторять их с помощью PHP? Этот код очень странный, и его очень неясно, что вы на самом деле пытаетесь сделать. Возможно, это недоразумение относительно клиентской стороны (js) и стороны сервера (php).