fullCalendarでクリックした日にイベントがあるかどうかを判定する
結構調べまわった・・・
dayClick: function( date, allDay, jsEvent, view ) {
var date2 = new Date(date.getFullYear(), date.getMonth(), date.getDate()+1);
var events = view.calendar.clientEvents(function(event) {
return event.start >= date && event.start < date2;
});
}
これでeventsにイベントがあれば配列で入っています。
なくても空の配列になっています。
ただ、イベントがあるかないかだけなら
events.length が0よりも大きいときということになります。
clientEventsの引数の"filter"のかけ方がいまいちわからなくて
"="や”==”をいろいろ試してみたのですが・・・
関数(function)を突っ込むみたいですね・・・いやよくわからんww
ってか、ドキュメント適当すぎだろw
参照先
FullCalendar Documentation - dayClick
メモ: cssで画像の一部を表示する
箱を表示したい位置に
表示したい画像を箱の背景画像に
background-positionを利用し、一部だけ表示
よくわからない正規表現
javascriptのDateに文字列突っ込んだらIEとFireFoxでInvalidになりやがった。。。
var dateStr = "2000-10-10 00:00:00";
var date = new Date(dateStr);
dateの値がChromeだとうまくいくのにIE,FireFoxでうまくいきません。
結論から言うと"-"区切りがダメみたいです。
なので
dateStr.replace("-", "/");
追記で修正
を突っ込んでおくといいでしょう。
しかし、なんでなんでしょうね。
というのも、javascriptにもいろいろ種類があります。
ブラウザによりこのjavascriptの種類が違うのです!
だから時々、戻り値がブラウザで違う!なんてことも。
なれるとすべてのブラウザに対応したjavascript文が書けるようになるらしいよ。
ちなみに種類に関してはGoogle先生に”ECMAScript”とか聞いてみるといいかも。
追記
dateStr.replace("-", "/");
だと全ての"-"を変換してくれませんでしたねw
/-/gとかにすればいいんだっけか?
正規表現がいまだにおぼえれません。
なので、dateStr.split("-").join("/")で許してください。
ページ遷移時にpostパラメータを送信する jQueryのpostと同時にそのページに移動
結論:結構無理矢理です。
そして今回も時間がないので簡単に書いていきます。
ページ遷移時にpostでデータを送りたいけど・・・できないらしい。
{url}?hoge=hoge
って感じでGETが普通なんだそうな。
そりゃ
location.href = {url};
とかだからpostを挿入する隙がない!・・・()
そんなの信じない!
で、無理矢理実現してみます。
js
var html = "<form method='post' action='{url}' id='refresh' style='display: none;'>" +
"<input type='hidden' name='hoge' value='hoge' >" +
"</form>";
$("body").append(html);
$("#refresh").submit();
実はjQueryのpostを使用していませんw
HTMLを生成して、そいつを動かすという・・・
"<input type='hidden' name='hoge' value='hoge' >"
をさらに追加することでpostパラメータを増やすこともできると思います。
また、こいつを関数化することでもっと使いやすくなること間違いなし!
けど、idの重複などに注意してください。
以外に簡単に実現できたのでよかった。
ajaxでphp側から投げられたcsvファイルをダウンロードさせる方法
ちょっと時間がないので簡単に書きます。
と
jQueryを使用しています。
php---------------------------------
$data = "1-a,1-b,1-c\n"
$data .= "2-a,2-b,2-c\n"
$this->respnse($data);
---------------------------------
js---------------------------------
$.ajax({
url: hogehoge,
type: "POST",
data:hoge,
datatype:"json",
success: function(res, status, xhr)
{
var a = "<a download='hoge.csv' href='data:application/csv;charset=utf-8," + encodeURIComponent(res) + "'>CSVファイル</a>";
$(".dl-parent").html(link);
var a = $(".dl-parent a")[0];
var e = document.createEvent('MouseEvents');
e.initEvent('click', true, true);
a.dispatchEvent(e);
}
---------------------------------
html---------------------------------
<div style="display: none;" class="dl-parent"></div>
---------------------------------
こんな感じです。