Задать вопрос

Как передать значения AJAX методом POST и вставить их в запрос?

Задача следующая передать даты для запроса. И соответственно вывести инфу.
Вот форма с выбором даты.
<form id="filterOrders1C">
                    <input class="dateInput" name="dateStart" type="date"/>
                    <input class="dateInput" name="dateEnd" type="date"/>                
</form>

Далее вот обрабатывающий скрипт на jQuery.
function getOrders1C(){
        var str = $('#filterOrders1C').serialize();
        $.ajax({
            type: "POST",
            data: str,
            url: "orders1c.php",
            dataType: "json",
            success: function(json){
                $('.tableOrdersTwo').empty();
                $.each(json.orders1C,function() {
                    var info = '<tr><td class="number">' + this['id'] + '</td><td class="date">' + this['date'] + '</td><td class="nameProduct">' + this['product'] + '</td><td class="tirag">' + this['tirag'] + '</td><td class="sum">' + this['price'] + '</td><td class="statusOrder">' + this['status'] + '</td></tr>';
                    $('.tableOrdersTwo').append(info);
                });
            }
        });
    }

Его я запускаю сразу при старте страницы и потом еще дописываю условие, что буду запускать при изменении даты.
$('.dateInput').change(function(){
        getOrders1C();
    });

Принимающий скрипт на php.
$dateStart = $_POST['dateStart'];
        $dateEnd = $_POST['dateEnd'];
        $query = "SELECT * FROM orders_1C WHERE code_client='1' AND date_order BETWEEN '" . $dateStart . "' AND '" . $dateEnd ."' OR 1=1";
        $result = db_connection($query);

        $orders_1C = array();

        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            array_push($orders_1C, array('id' => $row['id_order'], 'date' => $row['date_order'], 'product' => $row['product'], 'tirag' => $row['tirag'], 'price' => $row['price'], 'status' => $row['status']));
        }
        echo json_encode(array("orders1C" => $orders_1C));
        exit;


Проблема в том, что после запуска выводятся все заказы, но вот изменение даты ничего не дает. Именно значение даты не передается в запрос.
  • Вопрос задан
  • 1971 просмотр
Подписаться 1 Оценить 4 комментария
Решения вопроса 1
RazerVG
@RazerVG Автор вопроса
FrontEnd
Исправленная версия. Ошибка была в запросе.

if($_POST['dateStart'] != "" && $_POST['dateEnd'] != "") {
            $dateStart = $_POST['dateStart'];
            $dateEnd = $_POST['dateEnd'];
            $query = "SELECT * FROM orders_1C WHERE date_order BETWEEN '" . $dateStart . "' AND '" . $dateEnd . "' AND code_client='000002805'";
        } else {
            $query = "SELECT * FROM orders_1C WHERE code_client='000002805'";
        }

        $result = db_connection($query);

        $orders_1C = array();

        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            array_push($orders_1C, array('id' => $row['id_order'], 'date' => $row['date_order'], 'product' => $row['product'], 'tirag' => $row['tirag'], 'price' => $row['price'], 'status' => $row['status']));
        }
        echo json_encode(array("orders1C" => $orders_1C));
        exit;
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
событие change срабатывает тогда, когда внесены изменения в поле и поле теряет фокус.
Ответ написан
Комментировать
alexofree
@alexofree
Что приходит в скрипт в json.orders1C?
Добавьте console.log(json); в
success: function(json){


И добавьте в php скрипт строки для отладки:
$dateStart = $_POST['dateStart'];
$dateEnd = $_POST['dateEnd'];
echo json_encode(array("dateStart" => $dateStart, "dateEnd" => $dateEnd));
exit;


Если что, смотреть нужно в инструментах разработчика на вкладке Console
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы