麻烦jquery ui悬停以从数据库中获取数据

时间:2012-03-20 08:44:25

标签: php jquery mysql

无法显示来自数据库的工具提示结果。这是我的代码的过程我使用jquery ui获得了多个月的日历,当用户在日期悬停时,它将显示一个工具提示,其中包含来自数据库的事件列表并将其加载到div但是我无法获取数据从数据库比较用户悬停的日期。

以下是我的代码js和php

       $(document).ready(function () {
             $("event_calendar").datepicker(
            numberOfMonths: 3,
            showButtonPanel: true,
             );     

      $('td a').live('mouseenter', function () { 
            var day = $(this).text();
            var month = $(this).parent('.ui-datepicker').find('.ui-datepicker-month').text();
            var year  = $(this).parent('.ui-datepicker').find('.ui-datepicker-year').text();

            var dateSelected = month + day + year;

             $('.demo').html(date);
             $('#tooltip').load("event_list.php", {thisDate: dateSelected});
             $('#tootltip').css('visibility', 'visible')
       });


    });

event_list.php

$thisDate = $_REQUEST['thisDate'];

$qry = "SELECT * FROM event where eventdate = '$thisDate'";
        $result = mysql_query($qry) or die ("Error in query: $qry. " . mysql_error());
        while($row = mysql_fetch_object($result)){
        echo $row->event_name;
        }

It doesnt show any output on <div id="tooltip"></div>

我的日期格式是存储在mysql数据库

上的UNIX时间戳

1 个答案:

答案 0 :(得分:0)

  1. 不要使用$_REQUEST超全球,使用$_POST(或$_GET取决于ajax调用方法)会更好(更安全)
  2. 检查返回此javascript语句的内容:var dateSelected = month + day + year; 我不认为它会返回时间戳(您应该使用此值创建新的Date对象并使用getTime()方法获取时间戳,例如: var dateSelected = Date(year, month - 1, day).getTime() / 1000; 请查看此信息以获取更多信息:JavaScript Date Object
  3. 验证$thisDate变量的内容以防止sql注入
  4. 在PHP脚本末尾添加exit;以确保该脚本在回显所有信息后退出
  5. 您的PHP脚本不会生成MySQL错误,因为查询不正确但返回空结果。在PHP脚本中打印查询,您将看到使用javascript控制台的错误(在您的问题的评论中提到)