使用PHP示例的jQuery日期选择器

时间:2016-07-29 13:21:01

标签: php jquery

我正在尝试异步发送一些数据到服务器,如下所示:

(function($){
 $(document).ready(function($){

   var hiddenElement = $("#datepicker");

   $("#date_search").on('click', function(e){
       e.preventDefault();

        if(hiddenElement.is(':visible')){
           hiddenElement.datepicker().slideUp(700);

        } else {
            hiddenElement.datepicker({
                dateFormat: "yy-mm-dd",
                onSelect: function(){
                    var selectedDate = $(this).val();

                    var request = $.ajax({
                        url: "",
                        method: "GET",
                        data: {date: selectedDate},
                        dataType: "html"
                    });

                    request.done(function(msg){

                    });  
                }
            }).slideDown(700);
        }
   })

 });
})(jQuery)


<?php // front-page.php
 $filter_date = isset($_REQUEST['date']) ? $_REQUEST['date'] : current_time('Y-m-d');

 print_r( $filter_date ); 
?>

<style>
 html, body, #page, #content {height: 100%;}
 #datepicker {display:none;}
 #searchby {list-style-type: none;}
 #searchby li {float: left;padding-right: 1em;}
</style>


<ul id="searchby">
 <li><a id="date_search" href="">search by date</a><div id="datepicker"></div></li>
 <li><a href="">search by category</a></li>
 <li><a href="">archive</a></li>
</ul>

点击日期选择器和PHP脚本中的任何日期,将“2016-07-29”即今天的日期打印到屏幕上。不是我想要的。当然应该打印用户选择。

看着控制台我可以看到:

enter image description here

但是可以使用推动来实现它。

编辑:

确实学习技巧如:

success: function(res){
                 console.log($(res).find("#log").text());
                  }

<p id="log"><?php print_r($filter_date); ?></p>

是有益的。

1 个答案:

答案 0 :(得分:1)

首先,你的jQuery应该重写为:

var request = $.ajax({
    url: "",
    method: "GET",
    data: {date: selectedDate},
    dataType: "html",
    success: function(res) {
            console.log(res);
            //Do what you want here with the date
        }
});

另外:因为您自己调用脚本,所以您将获得所有输出(html和其他数据)。通常,您只需要JSON或完全符合您需要的字符串。您可以通过以下两种方式之一完成此操作。

调用另一个除了获取日期之外什么都不做的脚本,然后返回一个字符串。恩。 getdate.php,只有:     

 print_r( $filter_date ); 
?>

如果date中设置$_REQUEST

,请退出脚本
<?php // front-page.php
 if ( isset($_REQUEST['date']) )
 {
      echo $_REQUEST['date'];
      exit;
 }
?>