使用数据库中的结果作为jquery中的变量

时间:2017-04-03 15:00:54

标签: javascript php jquery datepicker

我的jquery datepicker有以下代码:

$(document).ready(function() { 

    var event = ['14 april 2017', '25 april 2017', '1 april 2017'];

$('#datepicker').datepicker({
      inline: true,
      showOtherMonths: true,
      dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
      beforeShowDay: highlightDays,
      onSelect: function(dateText, inst){
        showpopup();
        getdatespan();
            }
    });


function highlightDays(date) {
      for (var i = 0; i < event.length; i++) {
            if (new Date(event[i]).toString() == date.toString()) {
                return [true, 'ui-state-event', ''];
            }
        }
        return [true, ''];
    }
...

我想关注的是变量'event',它用于为highlightDays函数提供日期。如上所述,代码完美运行并成功突出显示变量中的日期。但是,这些日期已由我自己手动输入。

以下是calendar.php文件中的代码:

$findEventStartdates = $pdo->prepare('SELECT startdate FROM calendar WHERE username=?'); 

//execute query with variables
$findEventStartdates->execute([$username]);


($eventStartdates = $findEventStartdates->fetchAll(PDO::FETCH_COLUMN));

打印时,显示以下输出:

Array ( [0] => 14 april 2017 [1] => 25 april 2017 [2] => 1 april 2017)

我的问题是如何获得该PDO中输出的任何内容以用作datepicker的变量?

在PHP文件中,我尝试了以下内容:

$highlightEvents = implode("', '",$eventStartdates);

echo <<<_END
 <input type="text" name="eventHighlight" id="eventHighlight" value="'$highlightEvents'">
_END; 

这表明:

'14 april 2017', '25 april 2017', '1 april 2017'

在文本框中,然后使用jquery:

尝试此操作
var event = [$("#eventHighlight").text];

但这不起作用。因此,对于使用阵列的这种或不同方式的任何改变都将是值得赞赏的。

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以在php端使用json_encode()将数组直接打印到javascript中的变量中:

var event = <?php echo json_encode($eventStartdates);?>;

答案 1 :(得分:0)

替换:

var event = [$("#eventHighlight").text];

人:

var event = $("#eventHighlight").text.split(",");

说明:

$("#eventHighlight").text包含字符串,您的活动需要数组。为此,您需要使用split() 将字符串拆分为数组