在 PHP 中从数据库获取日期到 jQuery Ui Picker

Posted

技术标签:

【中文标题】在 PHP 中从数据库获取日期到 jQuery Ui Picker【英文标题】:Get dates from database to the jQuery Ui Picker in PHP 【发布时间】:2022-01-11 10:19:19 【问题描述】:

我正在尝试使用 php 从数据库中获取日期。这将在日期选择器中突出显示。为此,我进行了sql 查询以获取日期,如下所示。

html

Date: <input type="text" id="datepicker">
// Static dates
// An array of dates
var eventDates = ;
eventDates[ new Date( '08/07/2016' )] = new Date( '08/07/2016' );
eventDates[ new Date( '08/12/2016' )] = new Date( '08/12/2016' );
eventDates[ new Date( '08/18/2016' )] = new Date( '08/18/2016' );
eventDates[ new Date( '08/23/2016' )] = new Date( '08/23/2016' );
<script>
$(function() 
// An array of dates
var eventDates = ;
<?php

$sql = "SELECT * from `table` WHERE `value` > 0";

$result = $connect->query($sql);                       

while($row = $result->fetch_assoc())  

?>
eventDates[new Date('<?php echo $date = $row['date']; ?>')] = new Date(
'<?php echo $date = $row['date']; ?>');
<?php

?>

// datepicker
$('#datepicker').datepicker(
beforeShowDay: function(date) 
var highlight = eventDates[date];
if (highlight) 
return [true, "event", 'Tooltip text'];
 else 
return [true, '', ''];


);
);
</script>

所以在上面的代码中,我循环了所有具有value &gt; 0 的日期。哪个应该打印所有日期,但事实并非如此。我检查了查询,它在单独的 PHP 文件中完美运行。它回显出所有日期有value &gt; 0

我不确定这是否是从数据库中获取日期并将其传递给日期选择器的正确方法。还有另一种使用 JSON 的方法,但我不熟悉该方法,因为我没有使用过 JSON。

我可以进行哪些更改以从数据库中获取日期并在日期选择器中突出显示它们?

【问题讨论】:

你检查完成的 javascript 的实际样子了吗? @ADyson 它显示一个空白页。如果我用静态手动日期替换 sql 查询,它将在 datepicker 中显示突出显示的日期。 不,我的意思是检查浏览器源代码中生成的 Javascript。并检查控制台是否有错误。 @ADyson 在 Javascript 中出现错误 Uncaught Error: Call to a member function fetch_assoc() on bool,在控制台中出现 Refused to execute script from 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css' because its MIME type ('text/css') is not executable, and strict MIME type checking is enabled. 这实际上是一个 PHP 错误(最终被输出到 Javascript 的中间)。这意味着你的查询失败了,所以没有什么可以调用 fetch_assoc 的。打开 mysqli 错误报告以找出确切的错误 【参考方案1】:

我已将日期从YY-MM-DD 格式化为YY/MM/DD。由于日期选择器日期格式为YY/MM/DD。如果您使用带有- 的第二种格式,它将不会显示输出。

以下是更正后的脚本代码:

<script>
    $(function() 
        // An array of dates
        var eventDates = ;
        <?php

        $sql = "SELECT * from `table` WHERE `value` > 0";

        $result = $connect->query($sql);   

        while( $final=$result->fetch_assoc() ) 
        

        ?>
        eventDates[new Date('<?php 
        $orgDate = date($final['date']);
        $date = str_replace('-"', '/', $orgDate);  
        $newDate = date("Y/m/d", strtotime($date));  
        echo $newDate   ?>')] = new Date(
            '<?php $orgDate =date($final['date']); 
             $date = str_replace('-"', '/', $orgDate);  
             $newDate = date("Y/m/d", strtotime($date));  
             echo $newDate  
             ?>'
        );

        <?php
        
        

        ?>

        // datepicker
        $('#start').datepicker(

            dateFormat: "yy-mm-dd",

            beforeShowDay: function(date) 
                var highlight = eventDates[date];
                if (highlight) 
                    return [true, "event", 'Tooltip text'];
                 else 
                    return [true, '', ''];
                
            
        );
    );
    </script>

【讨论】:

以上是关于在 PHP 中从数据库获取日期到 jQuery Ui Picker的主要内容,如果未能解决你的问题,请参考以下文章

在 jQuery AJAX Success 中从 MySql 获取特定响应

在jQuery中从数组创建html表

oracle中从指定日期中获取月份或者部分数据

如何在PHP中从当前日期添加月份[重复]

如何从 PHP 中的日期获取日期名称?

在颤振中从 PHP REST API 获取数据给出异常