読者です 読者をやめる 読者になる 読者になる

JavaScript本格入門を読む・9

Ajax

今日からAjaxです。
私のAjaxの認識は言葉がかっこいい、程度です。

8-1.Ajaxとは

<form method="POST" action="hello.php">
名前:
<input type="text" name="name" size="15" />
<input type="submit" name="submit" value="送信" />
</form>
<?php
if($_REQUEST['submit'] != null) {
  sleep(3);
  print('こんにちは、'.$_REQUEST['name'].'さん!');
}
?>

まずはPHPでって・・・PHPなんて新入社員研修でやった以来ですよ!つまりは6年前!ひどい!
PHPになったとたん、webstormちゃんがサジェストしてくれなくなっちゃったしPHPのエディタを何か別にいれろとか言ってくるし・・・
まーた半角スペースでまごまごしちゃったからな!?(早く覚えろよ)
しかもさー確認のためにアップロードしようとしたらPHPファイルって無料でアップロードできないんだって!!!
そんなん知らなかったよ・・・しょうがないからジオシティーズプラスってやつ月額540円で加入したよ・・・
(ここでジオシティーをチョイスするあたりが古いインターネットの匂い)
来月退会しよう。なので下記のURLはきっとアクセスできなくなるでしょう。
hello
すごいこの程度のPHPすらアップロードできないなんてPHP怖い・・・

function getXHR() {
    var req;
    try {
        req = new XMLHttpRequest();
    } catch(e) {
        try {
            req = new ActiveXObject('Msxml2.XMLHTTP');
        } catch(e) {
            req = new ActiveXObject('Microsoft.XMLHTTP');
        }
    }
    return req;
}
function asyncSend(){
    var req =getXHR();
    req.onreadystatechange = function(){
        var result = document.getElementById('result');
        if (req.readyState == 4) {
            if (req.status == 200) {
                result.innerHTML =req.responseText;
            } else{
                result.innerHTML = "サーバーエラーが発生しました";
            }
        } else{
            result.innerHTML = "通信中・・・";
            }
        }
        req.open('GET', 'helloworld.php?name=' +
                encodeURIComponent(document.fm.name.value), true);
        req.send(null);
    }
(中略)
<form name="fm">
    <label>名前:
    <input type="text" name="name" size="15" /></label>
    <input type="button" name="submit" value="送信" onclick="asyncSend()" />
</form>
<div id="result"></div>

こっちhtml。下がPHP

<?php
sleep(3);
print('こんにちわ、'.$_REQUEST['name'].'さん!');

Hello,World
何回diffってもエラーになるし、サーバーエラーになる・・・・
何がいけないの・・・
もうずっと色々やってるんだけどうまくいかない・・・
もうやだ・・・
もうやだ!!!
次はAjaxアプリケーションで構造データを扱う、なんだけど既にここで躓いているのに出来る気がしない。
あとyahooウェブ検索webサービスはもう動かないらしい。
書評 JavaScript本格入門 function前の init: って何? - ScriptWorks.JP
つまり、今まで本の通りに書いてきたけど、別のもので書き直さないといけないってことか・・・
ハー出来る気がしない。
上のブログには

以下の getJSON.html はローカル環境でのみお試しください。

ってあったけど、ローカル環境を構築するってのも出来ないんだよね・・・
友達に相談したら、「ローカル環境を作るのも勉強のうち」って言われたんだけど、けど・・・けど・・・・
ハーどうしよう。
とりあえず、今日はここまでにして明日考えるかな。