- ベストアンサー
複数の予定を表示させたい
- CSVファイルから読み込んだデータをカレンダーに組み込み、該当日にリンクを貼り別ページで予定を表示することはできました。
- しかし、複数の予定がある場合には最後に格納された予定のみが表示されます。
- どのようにすれば予定を上書きせずに全て表示させることができるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ここをこうするといいのかな。 $enc = urlencode($all[$i]); ↓ $enc .= urlencode($all[$i]); ※見えにくいかも知れませんが、=の前にピリオドがあります。 これで文字列が後方へ追加されます。 ---- 私が前に回答した方法ですが、あくまで表示する方法として簡単なパターンのつもりで、他の回答者からのよりよい方法が回答されると期待しての事でした。 グッドでもベターでもベストでもない方法だと思っています。 実用で考えると、URLで長い文字列を送るのもどうかなと思いますし、予定がたくさんあるとカレンダーの画面のHTMLがとても大きくなりネットを流れるデータが多い(遅くなる)ので、日付だけをURLで引き渡して yotei.php の方でCSVを読み込むようにする方がいいのかなと思ったりしています。 読み込みの処理は、現在の処理をほぼそのまま使えると思うので、比較的簡単にできると思います。 それはそれで、CSVを2回読み込むと言うサーバーの負荷になるのかも知れませんが、おそらくキャッシュでささっとやってくれると期待して、気にしないでいましょう。 データが増えてきたらCSVは大変になってきそうな気もしますが、年月ごとのCSV('data200811.CSV'など)にすれば問題でもないような気もします。 予定の入力がよそでされてCSV化されているのを利用していて、現在はこのようにされているのでしたら仕方ありませんが、いずれは、入力もブラウザからできるようにされる計画なのでしょうね。 データベースを使うと、手間のかかる部分もありますが、楽になる部分もありますので、余裕ができたら、データベース移植計画も考えてみてください。 セッション変数を使うと2度読みの必要もないのかな。 なんだか、それが一番簡単な方法のような気がします。 メリット、デメリットは私にはよくわかりませんが、色々な方法を試されて、作りやすい、使いやすい、などの点を考えられたらと思います。
その他の回答 (1)
- dell_OK
- ベストアンサー率13% (776/5747)
for($i=0 ; $i<count($ymd) ; $i++) { の前に $enc = ""; を追加してください。 1日分の予定データでしか試していないので気付きませんでした。 $enc にどんどん追加されているために不具合が発生しているのかも知れません。 予定1,2008/11/13,11:00,2008/11/13,12:00 予定2,2008/11/13,11:00,2008/11/13,12:00 予定3,2008/11/14,11:00,2008/11/14,12:00 予定4,2008/11/14,11:00,2008/11/14,12:00 これくらいのデータでなら、13日も14日も表示されましたので $enc をクリアしてどうなるか試してみてください。
お礼
dell_OK様 度々ありがとうございます★☆ $enc=""; を前に付けたところ求める形で動きました♪♪ 本当にありがとうございます!!
お礼
dell_OK様 度々ありがとうございます。 「.=」を試してみたんですが…。 1日の内容表示はされるのですが、2日のリンクをクリックすると 「ページを表示できません」 と返ってきます(泣 また翌月(12月)の予定で該当日に1つしかない日が数日あって、 各該当日をクリックすると最初にリンクのついている日は1つだけ 予定が表示されるのですが、他の日をクリックすると今度は前日分 の予定まで表示してしまいます…orz このような場合どうしたら良いのでしょうか?? 何回もすみません。宜しくお願い致します。