• PHPで画面推移なしでファイルをアップロードしてその情報を親ウィンドウの変数に代入する

    Javascript側

    function uploadFile() {
        $("#form").submit();    //jQuery
        return false;
    }
    
    window.hoge = [];
    <form id="form" action="/upload" method="post" enctype="multipart/form-data" target="iframe">
    <input name="upload" type="file" onchange="uploadFile();">
    </form>
    <iframe name="iframe"></iframe>Code language: JavaScript (javascript)

    PHP側

    $upload_dir = "/www/var/html/public/";    //ディレクトリはあらかじめ作っておく。Windowsの場合C:\\から
    move_uploaded_file($_FILES['upload']['tmp_name'], $upload_dir . $_FILES['upload']['name']);
    chmod($upload_dir . $_FILES['upload']['name'], 0666);
    parent.window.formdata[0] = "<?php print($_FILES['upload']['name']); ?>";Code language: PHP (php)

    テストはしてないので間違いがあるかもしれません。window.formdataのプロパティとしてグローバル配列変数を作成し、その結果を代入します。ただ、セキュリティの観点からなのかイベントの発火は何度やってもだめでした。親ウィンドウの変数に代入するくらいしかできないようです。

  • JavascriptでIEとそれ以外のブラウザ両方で動くイベント登録を行う

    こうするといいようです

    //イベント登録
    if(!Object.addEventListener) {
        Object.prototype.addEventListener = function(_type, _func, _dummy) {
                this.attachEvent('on' + _type, _func);
        };
    }
    Code language: JavaScript (javascript)
  • タスク管理サービスを色々試してわかったこと

    私はこれまで、iPhoneやAndroid含めWebサービスにおいても、タスクを管理するサービスを試してきましたが、どれもこれもうまく運用できずにタスクをこなすことができませんでした。その中でもGoogleカレンダーとGoogle Taskだけはなんとか便利だなと感じるくらいでしたが、それでもうまく行きませんでした。

    そんな私が、結局何に落ち着いたかというと、かなりアナログ、しかもかなり原始的な管理の仕方に戻ってしまいました。

    タスク管理でベストなのは『A4用紙』

    A4用紙というのは、いかに万能であるかいままで考えたこともありませんでした。A4はもちろん真っ白な紙であって何の変哲もない普通の紙。だけど、だからこそ縦にも横にも使える。デスクのスペースが限られていたり、キーボードをデスクにおいていたりすれば、紙を横にして書いたほうが便利です。

    ただ、それだけが理由というわけではなく、もちろん他にも重要な理由があります。それが、常にタスクの内容を自分の目に止まるところに配置しておくということ。手元のA4用紙にタスクを書いておけば、キーボードを見ようとすれば一緒にA4用紙にも目にとまることになるでしょう。これを、パソコンでタスク管理しようとすれば、他のウィンドウに隠れてしまい見失ってしまいます。そうなってしまうと、タスクの存在を忘れやすくなってしまいます。どんなに意識していても、目を離せば確実に人は忘れます。つねに自分にできるだけ近いところに、目の視野の範囲内にタスクを置くべきです。

    A4用紙でタスク管理をする方法

    A4用紙でタスク管理をするのはとても簡単。やらないといけないことを箇条書きにしてもいいし、チャート式にして順番にタスクを消化してもいい。そんななか、自分がよくやっているやり方が、やらないといけないことを◯で囲むことです。それだけ、とにかく優先度関係なしにやろうとしていることを◯で書き込みます。すると、不思議なことにやらないといけないことに何らかの関連性があることに気づくとおもいます。

    例えば、「野菜を買う」 「料理をする」という2つのタスクがあったとすれば、それは野菜を買わないと料理はできない、ということになるとおもいます。なので矢印で2つの丸を順番に繋ぎ合わせます。こうすることによって、今頭の中に抱えているタスクにどのくらいの肯定が必要なのかを知ることができ、優先度が自ずとわかってきます。優先度ABCなんていちいちかく必要なんてありません。

    A4用紙をうめつくしたら

    基本的にA4用紙には左上に日付とプロジェクト名と何枚目の紙なのかを書き、もったいなくても表だけにかき入れ裏にはかきません。これはスキャナでスキャンしたときい裏の映り込みを防止するためと、裏と表両方に書いてあるとページめくりの効率がすごく悪くなるからです。

    何枚かかき終えたら、ステープラーでとめたり、スキャンしてEvernoteに補完したり、穴を開けてファイリングしてもOK。

    タスク管理とみせかけてマインドマップ

    タスク管理をするためにスケジュールをたってて色々とかいていると、いつのまにかマインドマップになっていることがよくあったりします。やることを大雑把に決めてそのやることをどんなふうにするのかをことこまかに決めようとすると、自ずと矢印と丸の関係になり、マインドマップのように枝分かれしていきます。それによって今やらないといけないことを具体的に把握することができ、さまざまな応用がきくようになります。