Re:zapa氏 今更ですが、jQueryにはまりました

  • 2007/12/27
  • このエントリーをはてなブックマークに追加

スポンサーリンク

ZAPA氏の記事。
ニュータイプなJSライブラリjQueryを使ってみよう!

これを見てから3日間。
ブログもあまりかけずこればっかりいじって遊んでました。
睡眠時間も1日2時間くらいになり、今日は書こうと思います。

まずZAPA氏、きっかけをありがとう。

私はJavaScriptの知識がほぼ皆無な人間です。
そんな私でもjQueryは簡単に使える為、面白くてはまりました。

ただ、お恥ずかしい話、PHPを使ってJavaScriptをある程度制御しなければ私は使いこなせません。
ですが恐ろしく簡単にこれまでこのブログで紹介してきたようなJavaScriptアプリと同等のものを作れる為、これははまります。
IT/Web業界に強い転職サイトGreen

JavaScriptダメダメの私でも出来ました


データベース接続部や、なんやかんやは全てPHPでまかない、動作部分やFormなどはjQueryに投げる。

こんな方法で色々試して見ましたが、Ajaxをこれまで結構な時間をかけて勉強したものが、ほとんどその知識が要らなくなりました・・・。

Ajaxといえばallaboutで関連記事の連載している高橋 登史朗氏がまっさきに頭に思い浮かびましたが、あの人ほんと涙目だなとか思っていたら、jQueryの魔法 というエントリから始まり、既にjQueryの初級者向け連載を書き始めていました。

やっぱりその道の人はそれなりに広い視野を持っているんだなと感動しました。

jQueryのすすめ


ZAPA氏のブログでは紹介されていなかったんですが、
$("#load").load("load.php");

load()がものすごい素敵。

簡単に説明していきましょう。
まずjQueryライブラリが無ければ始まりません。
導入については、ZAPA氏のニュータイプなjQueryその2-jQuery導入方法あたりを見てもらえれば、わかりやすいです。

基本的な動作にはある程度決まりがあり、その決まりさえ理解してしまえば、あとはもうなんでもできちゃいました。
jQuery
クリックされてから呼び出されるわけですが、これだけじゃそんな深い意味は持ってません。


phpとjQuery


IDをまず決める。(class、htmltag等もありますが、ここでは省略)
<div id="test">ここに出力される</div>

次にボタンなり、リンク何なり、アクションを起こす為のものを用意する。
<input name="btn1" type="button" value="ボタン" id="a1">

最後にスクリプト
<script type="text/javascript">
$("#a1").click(function (){
var ids = $(this).attr("id");
$("#test").load("load.php?id=" + ids);
});
</script>

こうすると、load.php?id=a1という状態で呼び出しが可能です。

簡略解説


$("#a1").click(function (){
#というのはidを示しています。
.click(function ()はくりっくされたら・・・です。

つまりid=1のボタンがクリックされたことで
var ids = $(this).attr("id");
idsに対してidの中身を導入し
$("#test").load("load.php?id=" + ids);
先に記述したdiv id="test"の中に、load.php?id=a1の処理結果を入れます。

恐ろしく説明が下手ですいません。

たったこれだけの動作でも、これまで苦労してきたものが一体なんだったのか疑ってしまうほど簡単な記述ですんじゃいました。

で、どこがPHPなのよとなると、呼び出された側、GETで呼び出してくれるならPHPでいくらでも、様々な処理をさせる事が出来ます。
このあたりが素敵です。

出力する場所は別にdivと決まっているわけではありません。
<input type="text" id="test">
input typeテキストでも、idを振っておけばそこに挿入できます。

この場合
$("#test").load("load.php?id=" + ids);
ではなく、
$("#test").val("挿入する文字");

こうしておけば文字がテキストボックスの中にポンと入ります。

魅力的なのはたった数行で終わるところ。

ためしに社内ローカルで動いているグループウェアに様々な機能を付けてみましたが、いろんな事が出来ました


とりあえず動画でこんなのもできましたと言うのを。





北海道旭川市からの各市町村への距離を検索するもの。
ひらがなが入力されたら、データベースからその文字に一致するものを、その場で表示するというものです。

社内ローカルデータベースと連動しているので、サンプル表示用に作るのが面倒な為、動画で表示しています。めんどくさがり屋ですいません。

こんなのを2時間くらいで作れてしまうjQueryライブラリ。

$("#forms3").keyup(function () {
var value = $(this).val();
$("#forms4").val("load.php?key=" + value);
}).keyup();

テキストボックスにforms3という名前を付けていて、そこが入力されたかどうかをkeyupで常に見続けています。
なんらかの文字が入力された場合、その結果をload.phpに対してGET送信し、これを元にPHPからデータベースにアクセス。
<div id=forms4></div>にprintで出力したものが挿入されているというものです。

補足
全角文字はGET送信した内容が文字化けしたりします。

本来は送信する前にPHPにて
urlencode($h);
などでエンコードし、受け取る場合は
urldecode($h);
すれば問題ないのですが、最悪受け取るPHP側で変数をエスケープしたのち以下の記述で文字エンコードを無理やりutf-8にしてあげると直ります。
<?php
$key = mb_convert_encoding($_GET['key'], "UTF-8", "UTF-8, JIS, eucjp-win, sjis-win");
?>

jQueryはほんと簡単なので時間短縮をお望みの方にもおすすめです。

私が参考にしたサイト。
API/1.2/Attributes - jQuery JavaScript Library

jQuery リファレンス

ニュータイプなjQueryその3-HTML要素アクセス

jQuery 開発者向けメモ

修正追記
・修正箇所について
コメント、及びトラックバックからありがたいご指摘を頂きました。
di="1"と紹介していたのですが、これでも動作ができてしまう為、そのまま記載しました。
ですが、HTML的にid= は『アルファベットから始めなければならない』という規則をすっかり無視していたことに気づかせてくれましたので、その部分を修正させていただきました。
bmblog: htmlのid属性はalphabetから。
不出来な私に暖かい言葉をありがとうございました。



スポンサーリンク

トップへ戻る

Twitter版のネタ帳では毎週月曜~金曜までWeb屋さんに役立つ色んな情報や単なるネタまでをつぶやいています。

関連するエントリー

コメント

この記事にコメントする人はクリック

コメントポリシーをお読みください
管理者にだけ表示を許可する

名前を名乗れない人

id名は数字からはじまってはいけません。

2007/12/27 Thu 23:39| |

サルグラ

こんにちは。
本当に自分の力不足なのですが、
<script type="text/javascript" src="./jquery.js">で読むと上記のことをする前に
なぜかエラー3939行文字9とでるのですが、
なぜなんでしょか?
簡単にjquery行けるとおもっていたので、
なぜか無念です。。。

2008/03/12 Wed 18:14| |

サルグラ

>>続き
あれから試行錯誤で
prototype.jsと両方を使えないみたいで。。。
それが原因なようで。。。
ん~どしよぉ

2008/03/13 Thu 10:32| |

トラックバック

この記事にトラックバックする人はクリック

htmlのid属性はalphabetから。

Re:zapa氏 今更ですが、jQueryにはまりました*ホームページを作る人の...

bmblog:2007-12-28 13:45

FC2Ad

広告


IT・Web業界の求人なら転職サイトgreen(グリーン) ホームページテンプレート、WordPressテーマ、Facebookページテンプレートならクラウドテンプレート ネットマーケティングとは│ネットマーケティング検定 SEOコンサルティング&SEO対策 無料レスポンシブWebデザインテンプレート 広告主募集

あわせて読みたい
フィードメーター - ホームページを作る人のネタ帳

人気の記事一覧

あなたのブログの再訪問者を増やす50の方法

私の経験から感じた事を書き記します。全てが全てその時々で、正しいとは限りませんが、一つの指針としてお使いください。因みに全部リスト化すると230くらいありましたが、それはきっとセミナーとかでやるかなぁと。

http://e0166.blog89.fc2.com/blog-entry-824.html

あなたの生活を確実に拘束し時間を浪費させる動画50

今回は生産性を向上させる事ばかり考えて記事を書いてきたので、逆に年末にかけて忙しい皆さんの時間を出来るだけ拘束し、忙しさを倍増させるものが無いかを考えました。その結果、動画で行こうと言う事になったのが1ヶ月以上前。動画閲覧本数はおそらく600本以上。その中から、おもしろそうなものを50個ベストチョイスいたしました。

http://e0166.blog89.fc2.com/blog-entry-820.html

webデザインのセンスを磨く○○系のwebデザインまとめ

webデザインを学ぶならwebデザインから。と言うわけで、今回は海外のエントリを中心に、○○系のまとめをまとめます。

http://e0166.blog89.fc2.com/blog-entry-817.html

jQueryプラグインのベストトレンド総まとめ2010

もはやこの業界ではかなり浸透しつつあるjQuery。今回はそんなjQueryにスポットを当て、本年度紹介された中でも、ホットなトレンドプラグインをご紹介します。

http://e0166.blog89.fc2.com/blog-entry-816.html

ツイッターの日常における35の行動パターン

私が良く見かける35の行動パターンに名前をつけてみようと思う。年末の誰も見てない時に公開しようと思っていた、ただのネタだったのですが、結構時間がかかりこの時期に・・・。

http://e0166.blog89.fc2.com/blog-entry-823.html

ウェブデザイナーのためのウェブアプリ15

OSがWindowsであろうと、ubuntuであろうと、共通のサービスを受けることができるのがウェブアプリケーションです。ウェブデザイナーの中には、自宅ですでにubuntuを利用している人も多い。また、Mac、Windowsと、各自それぞれの使いやすい物を利用していると思います。

http://e0166.blog89.fc2.com/blog-entry-784.html

愛用するGoogleChromeエクステンション12個

この2年でノートPC2台購入。自他のPCはクラッシュしてリカバリー。会社のPCは新しいのがあたり、再セットアップ。そんなこんなで、会社はまぁともかくとして、とりあえず全PCが比較的3ヶ月に一度リカバリーしてもいいように、自分用にメモとして残しておきます。

http://e0166.blog89.fc2.com/blog-entry-784.html

文章や会話のプレゼンテーションを向上させる方法

文章力がないためにプレゼンに失敗した、会話がうまくできずにプレゼンに失敗した。こういう経験はなかなか無い。なぜなら多くの場合、失敗したことに気がつかないからです。

http://e0166.blog89.fc2.com/blog-entry-802.html

サイトの裏側の意識を変え売り上げをアップする方法

ネットショップ運営者が、あることをちょっとだけ始めてみただけでわずか5ヶ月で売り上げが3倍になりました。はたして、webサイト運営がどのように変わったのでしょうか。。

http://e0166.blog89.fc2.com/blog-entry-749.html

webサイトのリピーターを増やすさりげない5つのコツ

多くのビジネスサイトのアクセス数を支えている大手検索サイト、Yahoo、Googleのアルゴリズムが変わる事で、突然商売がひっくり返る事態を回避する方法。

http://e0166.blog89.fc2.com/blog-entry-746.html