1.ブラウザ上に表示されているテキストリンクをクリック。
2.すると、そこで指定しているPHPが動作する。
3.そのPHPで処理を行った結果を、「1.」のブラウザ画面に表示する。
ただし、「3.」でPHPの処理結果を表示する際、画面の切替は行わず、かつリンクの下にPHPの処理結果がグイッっとツリーのように展開されるように表示されるというものです。
要するに、JavaScriptなどで、ツリー表示されるようなものがありますが、それとはちょっと違って、今回探しているのは、ツリーを展開させるリンクをクリックすると、指定したPHPの処理が走り、
その結果をリンク表示するというものです。
ウーン、わかりづらいですがよろしくお願いします。
http://upride.com/addr/smp/index.htm
Addr Book
このサンプルスクリプトの一部が
お望みの動作かと思います
画面の上のモードを更新にして「go」を押します
左側にリストが出ますので
適当な項目をクリックすると
下に該当するデータがリストアップします
この時リロード処理が走りますが
javascriptのツリーみたく
リロードしないで下にリストアップする場合は
やっぱりjavascriptを使わないと出来ないと思います
この方法も以前作ったことがあるので
その場合は再質問していただければ
サンプルはありませんが流れだけでもご提示できます
http://www.treeview.net/treemenu/3fr_beenthere.html
Treeview example
ではお好みの動作はこんな感じだと思いますが
このようなスクリプトは大抵設定ファイルを
持っていると思います(jsファイル)
そのjsファイル自体をPHPで出力してやるようにすれば
画面もリロードすることなく
PHPで吐き出したデータをメニュー表示することができます
問題はPHPで出力し終えた後表示しないとまずいので
phpが出力し終えたというフラグを画面側(javascript)
が取得する処理が必要です
その場合PHPで最後に出力する場所にフラグを立てて
立つまでjavascript側でループすることで回避することが
出来ると思います
ご回答ありがとうございます。
リンクを展開する時に、DBから展開するデータを取得し、その結果を表示するという処理をしたいんですが、結構大変みたいですね。
ご回答頂いた内容も、ちょっと難しくて大変です。
データ取得部分にXMLDOMを使用するというのはどうでしょう。(ツリー表示部分は既に持っているor自分で作ると仮定してます)
上記サイトにはXMLを動的に取得するためのLoaderがあります。
これを用いれば以下のようなことが実現できます。
・画面の切り替えを行わずデータを取得可能
・データの取得はPHPなど別のURLへアクセスすることで取得
PHP側ではHTMLではなくXMLで返す必要があり、取得前後の処理(描画など)はJavaScriptで実装することが必須となりますが、はまるとなかなか面白いです。
JavaScriptを使用してXMLを読み込み、さらにこのデータを変換して見栄えを整える、というサンプルがあります。
フムフム。なんとかできそうな感じです。
大変助かりました!色々とありがとうございました!
動作的には、ご提示頂いたものです。
ただ、リロードはせず、クリックした際に展開されるツリーを表示するために必要なデータだけをPHPで出力するというものを探しています。
そのJavaScriptを使った方法を作ったことがあるとのことですが、参考になるものを教えて頂ければうれしいです。