0

私はこのカレンダー イベント機能を構築してきましたが、思わぬ障害に遭遇しました。このために使用している2つのファイルがあります

  1. 主に jQuery と JavaScript で埋め尽くされたメインのカレンダー ファイルと、
  2. mysql データベースにイベントを照会する php ファイル。

次のスクリプトを使用して、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)
        },

上記のコード ブロックの 2 行目から最後の行を参照してくださいtitle: event_title。はevent_title、スクリプトの最初に作成した変数です。このページを表示すると、「event_title」の変数値ではなく、変数の作成に含まれていた段落タグのみが出力されます。

では、段落タグを から削除するにはどうすればよいevent_titleでしょうか? 残っているのは、jQuery ajax スクリプトを使用して取得した他の php ファイルの配列値だけですか?

4

2 に答える 2

0

コードは現在、 ajax でロードしたデータとは関係のない文字列を として渡します。代わりに、ロードされたコンテンツを取得するためにevent_title使用できます。.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 に答える