0

我一直在构建这个日历事件功能并遇到了障碍。我有两个文件正在为此工作

  1. 我的主要日历文件主要由 jQuery 和 javascript 填充,以及
  2. 一个 php 文件,用于查询 mysql 数据库中的事件。

我可以使用 jquery (ajax) 使用以下脚本将数组从另一个文件拉到我的主日历页面中:

$(document).ready(function(){
    $("p #1").load("events_array.php #3");
});     

var event_title = "<p id='1'> </p>";

然后,当我使用该脚本时,该脚本会完美地输出数组结果

document.write(event_title);

但是,每当我将变量 event_title 插入日历脚本的标题字段时,它都不会输出相同的结果......而是输出文字

<p id='1'></p>

请参阅我将变量插入到下面的日历脚本:

$(document).ready(function(){
    $("p #1").load("events_array.php #3");
});     

var event_title = "<p id='1'> </p>";

$('#example-fullcalendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    events: [
        {
            title: event_title,
            start: new Date(y, m, 1)
        },

请参见上述代码块的倒数第二行:title: event_title. 这event_title是我在脚本开头创建的变量。当我现在查看此页面时,它输出的不是“event_title”的变量值,而是创建变量时包含的段落标签。

那么如何去掉段落标签event_title呢?剩下的只是我使用 jQuery ajax 脚本检索到的另一个 php 文件中的数组值吗?

4

2 回答 2

0

该代码当前传递一个字符串as event_title,它与您使用 ajax 加载的数据无关。您可以使用它.html()来检索加载的内容:

// ... snip
events: [
    {
        title: $('#1').html(),
        start: new Date(y, m, 1)
    },

然而,如果你只是.load()用来让 HTML 传递给 fullcalendar,你应该使用它$.get(),因为没有理由用这些信息污染你的 DOM:

$.get('events_array.php', function (html) {
    var event_title = $(html).find('#3').html();

    $(document).ready(function(){
        // then fullcalendar init
        $('#example-fullcalendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            editable: true,
            events: [
                {
                    title: event_title,
                    start: new Date(y, m, 1)
                },
            // ...
    });
});  
于 2013-10-27T17:36:09.490 回答
0

如果您使用的是 jQuery,您可以将 'event_title' 包装在 $() 中并调用 text() 给它。

$('<p>event_title here</p>').text()将剥离 html 并生成event_title here.

于 2013-10-27T17:36:14.003 回答