值通过AJAX发送但在PHP文件中找不到

时间:2016-07-12 14:44:34

标签: javascript php jquery ajax

我有一个输入字段,选中后会打开日期范围日历。

enter image description here

我正在尝试通过AJAX将日期值发送到PHP文件,以便在按下“应用”按钮时进行回显。 AJAX发布请求确实发送,但是当我尝试在我的PHP文件中测试检测时,没有返回任何内容。

我在线搜索过,没有发现任何迹象表明原因。这是我的代码

的index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script type="text/javascript" src="//cdn.jsdelivr.net/jquery/1/jquery.min.js"></script>
    <script type="text/javascript" src="//cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
    <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap/latest/css/bootstrap.css" />
    <!-- Include Date Range Picker -->
    <script type="text/javascript" src="daterangepicker.js"></script>
    <link rel="stylesheet" type="text/css" href="daterangepicker.css" /> </head>

<body>
    <input type="text" name="datefilter" value="" id="dates" />

    <script type="text/javascript">
        $(function () {
            $('input[name="datefilter"]').daterangepicker({
                "showDropdowns": true
                , "minDate": "01/01/2014"
            });

            $('input[name="datefilter"]').on('apply.daterangepicker', function (ev, picker) {
                $(this).val(picker.startDate.format('MM/DD/YYYY') + ' - ' + picker.endDate.format('MM/DD/YYYY'));
            });
            $('input[name="datefilter"]').on('cancel.daterangepicker', function (ev, picker) {
                $(this).val('');
            });

            $(".applyBtn").attr('id', 'testing');

            $('#testing').click(function (e) {
                $.ajax({
                    type: "POST",
                    url: 'test.php',
                    data: {
                        dates: $('#dates').val()
                    },
                    success: function (data) {
                        alert("success")
                    }
                });
            });
        });
    </script>
</body>

</html>

test.php的

<?php
   if (isset($_POST['dates'])) {
       $range = $_POST['dates'];
       echo $range;
   } else {
       echo "false";
   }
?>

EDIT //

回应机构

enter image description here

1 个答案:

答案 0 :(得分:0)

代码工作正常,服务器响应位于“响应”选项卡中:

enter image description here

而不是在警报中显示“成功”,您可以这样做:

success: function (data) {
    alert(data)
}

修改

test.php中的输出:

将datefilter放入表单

<form id="frm-test" action="test.php" method="post">
   <input type="text" name="datefilter" value="" id="dates" />
</form>

日期 - &gt; test.php中的datefilter

<?php

if (isset($_POST['datefilter'])) {
    $range = $_POST['datefilter'];
    echo $range;
} else {
    echo "false";
}