Ошибка: как заставить js-переменную daterangepicker отображать эхо в php-файле PHP JAVASCRIPT

Моя проблема здесь в том, что когда я пытаюсь отправить диапазон дат от начала до конца, он не может показать значение или переменную в моем файле 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';
});

Это бы мне очень помогло. Спасибо!!

Не уверен, что вы на самом деле пытаетесь здесь сделать. Сначала вы публикуете сообщение с помощью Ajax, а затем в случае успеха перенаправляете клиента? Но это не тот файл, на который вы перенаправляете (разные URL-адреса)? Затем на вашем date2.php вы пытаетесь консольно регистрировать startdate и enddate в JS. Вы установили эти переменные js на этой странице? Зачем даже повторять их с помощью PHP? Этот код очень странный, и его очень неясно, что вы на самом деле пытаетесь сделать. Возможно, это недоразумение относительно клиентской стороны (js) и стороны сервера (php).

M. Eriksson 16.11.2018 07:11

Я не устанавливал их на странице php, на самом деле я новичок в js

Angela 16.11.2018 07:16

Тогда вы не сможете их записать в консоль. date2.php - это новый запрос / страница.

M. Eriksson 16.11.2018 07:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Думаю, я вижу вашу проблему. Это должно исправить. Это, конечно, должно сопровождаться всеми предупреждениями о том, правильно ли вы загружаете все свои 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'] : '';

M. Eriksson 16.11.2018 07:26

Я знаю, но то, как я это сделал, более читаемо в качестве примера. В общем, при необходимости я напишу немного больше кода, чтобы облегчить чтение, если это не повлияет на производительность.

Difster 16.11.2018 07:28

Трудно сказать, так как я не знаю, что делает остальная часть вашего кода, и прошло некоторое время с тех пор, как я использовал средство выбора даты jQuery. Но предоставленный мной код перенесет ваши переменные в ваш файл date2.php, и вы сможете использовать их везде, где они нужны.

Difster 16.11.2018 07:31

Очень признателен.

Difster 16.11.2018 07:34

Другие вопросы по теме