我的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];
但这不起作用。因此,对于使用阵列的这种或不同方式的任何改变都将是值得赞赏的。
谢谢。
答案 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()
将字符串拆分为数组。