Fullcalendarのすべてのイベントにidを追加する必要がありますが、これはhttp://arshaw.com/fullcalendar/docs/event_data/Event_Object/ですが、私はこのIDがどのように1つのイベントごとに一意であるかはわかりません。
Mysqlデータベースのイベント。ありがとうイベントのID(Fullcalendar)
答えて
イベントオブジェクトのIDはオプションのフィールドです。サーバー側のスクリプトから戻ってくるものを返却して使用することができます。 ... 'calendarName_eventID'フィールドの組み合わせから複合IDを作成することも、データベースからeventIDを単に使用することもできます。しかし、そのようなプライマリキーを公開したいのかどうかは分かりませんが(これは別の問題です)。あなたは自分のID値を作成することができます。カレンダーイベントを削除するとhttps://code.google.com/p/fullcalendar/issues/detail?id=713
スレッド箱を、しかし、元のポスターは、彼/彼女はセーブイベントからのコールバックにIDを設定した方法を示しています。
あなたはここを見てしたい場合があります。
希望します。
ありがとうございましたが、投稿が古すぎると思われます。その理由は、それが私のためにはうまくいきません。 –
OK、ここが私の解決方法です。 は、最初に私はその後、私はJS
var idActual = "<?php echo $idActual ?>";
にIDを送信し、それはそれだ最後のIDに
<?php
$sql = mysql_query("SELECT id FROM calendar ORDER BY id DESC LIMIT 1");
$resul = mysql_fetch_row($sql);
$idActual = $resul[0];
$idActual = $idActual + 1;
?>
を私のDBと私プラス1から最後のidイベントを取得します。
解決策が見つかりました!
var shift = calendar.fullCalendar('renderEvent',
{
id: shift_id,
title: current_name,
start: new Date(y, m, d + current_day, current_start_time_h, current_start_time_m),
end: new Date(y, m, d + current_day, current_end_time_h, current_end_time_m),
allDay: false
}, true // make the event "stick"
);
をこのリスナーは、DOM構造にIDを追加した後:
eventAfterRender:function(event, element, view) {
$(element).attr("id","event_id_"+event._id);
},
フィールド上のすべてのイベントを取得するには:
console.log(calendar.fullCalendar('clientEvents'));
あなたがここにあなたのuniqe IDを入れて、任意のイベントを作成
イベントの配列があり、すべてのイベントにDOM構造の番号が付けられました。
私はこの1つに類似prametersでのparam IDを設定することをお勧めいたします:
$('#calendar').fullCalendar({
id: 'calendar',
eventReceive: function(event) {
alert(this.calendar.options.id);
},
eventDrop: function(event) {
alert(this.calendar.options.id);
},
eventClick: function(event) {
alert(this.calendar.options.id);
},
eventRender: function(event) {
alert(this.calendar.options.id);
}
});
透明な溶液が
であるあなたはアヤックスとのイベントも割り当てるフェッチする場合DBから来る「id」その
にid:
$.ajax({
url: '/eventsJson',
type: 'GET',
data: { },
error: function() {
alert('there was an error while fetching events!');
}
}).done(function (doc) {
var event = Array();
$.each(doc, function(i, entry) {
event.push({id:entry.id, title: entry.title, start: entry.start});
});
をentry.idイベントfletchは述べているように、あなたが順番にDBまたはDB接続コードでそれぞれの新しいイベントのためのIDを生成する必要が
eventClick: function(event, jsEvent, view) {
var title = prompt('Event Title:', event.title, { buttons: { Ok: true, Cancel: false} });
if (title){
event.title = title;
var data = {
'title':title
};
$.ajax({
url: '/events/'+event.id,
data: data,
type: 'POST',
dataType: 'json',
success: function(response){
if(response.status == 'success')
$('#calendar').fullCalendar('updateEvent',event);
},
error: function(e){
alert('Error processing your request: '+e.responseText);
}
});
}
}
をクリックします並行処理を可能にします。BryanVillafañeも同様のアプローチを採用していますが、ここで私の解決策です。 FCのJavaScriptが
:
select: function(start) { //executed when clicked on a day
var title = prompt('Event title:');
if (title) {
$.ajax({
url: '/events.php',
data: 'title='+title+'&start='+moment(start).format('YYYY-MM-DD'),
type: "POST",
success: function(id) {
console.log(id); //used for debug
if (!isNaN(id)){ //on success checks the result
event = { //and adds the event locally with the returned DB id.
title: title,
start: start,
team: team,
id: id
}//then renders the new event
$('#calendar').fullCalendar('renderEvent', event, true);
}
},
error: function(error){
console.log(error);
}
});
} //unselects the clicked day
$('#calendar').fullCalendar('unselect');
}
私は終日イベントを使用するので、これはYYYY-MM-DD
形式として日付を送信していますが、適切に更新することができます。 start
を送信すると、エポックタイムがミリ秒になります。
挿入が成功すると、DBは行のIDを返し、次にローカルに作成されたイベントに割り当てられてレンダリングされます。
$result = "Wrong parameter combination!";
if ($_POST[title]&&$_POST[start]) {
$result = $db->exec("INSERT INTO events (title, start) VALUES ('$_POST[title]','$_POST[start]')");
if($result==1){
$result = $db->lastInsertRowID();
}
}
echo $result;
ここでは、2つのPOSTパラメータをチェックし、挿入を行います。挿入が成功した場合は、最後の挿入行IDを取得してJSに返します。それ以外の場合は、エラーメッセージが返されます。
DB用にSQLite3を使用していますが、最後に挿入されたMySQL用の行は、hereのように確認できます。あなたのインサートと最後の行IDのチェックの間に別のイベントを挿入する小さなチャンスがありますが、交通量が多い場合を除き、OKです。
各イベントは、すでに独自のIDがあります。ドキュメントに記載されているように、繰り返しイベントが同じイベントIDを持っている必要があるため
eventClick: function(event){
alert(event._id);
}
- 1. FullCalendar IDで外部イベントを削除
- 2. FullcalendarイベントでリソースIDを取得
- 3. AngularJS FullCalendar IDでイベントを取得
- 4. FullCalendarのイベント
- 5. Fullcalendarイベントの幅
- 6. FullCalendarイベントby
- 7. FullCalendarイベントの削除
- 8. Javascript Fullcalendar - イベントのコピー
- 9. Fullcalendarイベントの制約
- 10. fullcalendarはイベントで 'id'を設定しません
- 11. fullCalendar listMonthイベントの注文
- 12. ハンドブックasp.netのjquery fullcalendarイベントC#
- 13. FullCalendar - イベントとしてのイメージ
- 14. FullcalendarイベントagendaDayとagendaWeekviewの幅
- 15. FullCalendarの定期的なイベント
- 16. jQuery FullCalendarカスタム定期イベント
- 17. Fullcalendarイベントを並べ替え
- 18. イベントをレンダリングしないFullcalendar
- 19. Fullcalendarはここでイベント
- 20. FullCalendar eventRenderイベントでブラウザタブをフリーズ
- 21. SalesforceのFullCalendarでのJSONイベントの再フック
- 22. Fullcalendar APIのイベントへのポップアップの追加
- 23. Fullcalendar超薄型のイベント(CSSのバグ)
- 24. FullCalendar-2.7.3のイベントは私のコンソールで
- 25. FullCalendarの色の変更新しいイベント
- 26. FullCalendarでのイベントの表示開始タイムスタンプの代わりにイベントID順に表示
- 27. FullCalendar dowプロパティの定期的なイベント
- 28. FullCalendarの定期的なイベントASP MVC
- 29. FullCalendar - ドロップ/サイズ変更イベントのPopover確認
- 30. FullCalendarでイベントの幅を編集
は、このIDは一意ではありませんが。フルカレンダーでイベントを入力するときは、必ず1つのイベントごとにIDを与えることができますが、必須ではありません。 –
しかし、後で私は選択されたイベントを編集し、それを行うためにIDを必要とするので、私は一意のidを必要とします。 –