みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
PHP Site Assistantで作成したファイルで
検索(findrecord.php)して、検索結果一覧(recordlist.php)から任意のレコードを選択して閲覧(browsrecord.php)し、
再度検索結果一覧に戻りたいのですが、
どのようなリンクを貼ればよいのでしょうか。
検索条件を引き継いで持っていき、
その条件を再度用いて検索結果一覧を表示すればよいとは思うのですが、
具体的な方法がわかりません。
http://www.russ.jp/stepbbs/step.cgi?mod … no=38038では
レコード閲覧(browserecord.php)を別ウィンドウで開き、
ウィンドウを閉じて検索結果一覧(recordlist。php)に戻る
という方法が提示されていましたが、
検索情報がクリアされてしまうためか、
検索結果が表示レコード数より多い場合、
「次へ」や「最後へ」など一覧へ表示するレコードの範囲を変えることができません。
(検索条件がリセットされ、全レコードが表示されてしまう。)
http://codezine.jp/article/detail/2500?p=4
を参考に検索条件を引き継げれば良いと思うのですが、
いまいちわかりません。
丸投げしてしまう形になるのですが、
PHP Site Assistant をベースに教えて頂けると助かります。
どうぞ宜しくお願い致します。
PHP Site Assistant はオワコンなので、今さら勉強始めるより、普通にphpでコード書いた方がいいです。
カスタムWebを始める時に、ちょっと使ってみましたがよく分からなくて、すぐに自前で書き始めました。
それはともかく、
>レコード閲覧(browserecord.php)を別ウィンドウで開き、
>ウィンドウを閉じて検索結果一覧(recordlist。php)に戻る
別ウィンドウで開けば recordlist.php は検索状態を保ったまま残されているはずですので、「検索情報がクリアされてしまう」ことは無いと思うのですが。
Offline
browserecord.phpがレコードIDを使って検索してしまうので「クリア」ということになるのでは。
検索しないでレコードデータを引っ張るように書き変えればいいと思うけど、古いバージョンで可能かどうかは不明。
レコードIDで自己リレーションして、ポータルから取得ならできるかなあ?
1つめのリンク先が「不正なアクセス」になったので想像で書いてしまいましたが、今一度、見直してみました("では"が余分に付いているのに後で気がついた)。
要はこのスレッドの#38127と同じことを言ってるだけなんですが、browserecord.phpの中のrecordlist.phpへのリンクにtarget=_blankを加えて別ウィンドウで出せば、browserecord.phpはそのまま残りますよね。PHP Site Assistantのコードでは別ウィンドウで出すことが出来ないのかな?
Offline
ご返信ありがとうございます。
yaya様
>PHP Site Assistant はオワコンなので、今さら勉強始めるより、普通にphpでコード書いた方がいいです。
やはり1からPHPを勉強して書くしか道はないでしょうか。。。
closer様
>検索しないでレコードデータを引っ張るように書き変えればいいと思うけど、古いバージョンで可能かどうかは不明。
Filemaker11proを使用しています。
宜しければ具体的に教えて頂けると非常に助かります…!
返信が入れ違いとなってしまいました。
yaya様
確かに、target=_blankで別ウィンドウでbrowsrecord.phpを出せば
recordlist.phpはそのまま残るのですが、
recordlist.phpで検索結果を1画面で25件表示と設定してあり、検索結果が50件ある場合
次の25件を表示するために「次へ」を押すと
browsrecord.phpを表示する際に検索結果がクリアされるのか、
検索結果が全レコードに変わってしまい、本来見たい検索結果を見ることができません。
・・・説明下手で申し訳ございません。
browserecord.phpの画面だけそのまま残っても、セッションで保存されてる検索結果(検索条件と表示ページ、かな?)と一致しなくなるから駄目なんです。
グローバルフィールドとレコードIDをリレーションすれば、フィールド設定で任意のレコードの値を取得できるので、それを使って表示する。
と思って書いたんだけど、FM11のPHPでグローバルフィールド設定だけできるのかどうかが疑問ですね。。。
レコード番号でGetNthrecordを使えばいいのかな。しかしこれも、PHPAPIでFM計算結果の取得ってできますかね...
サイトアシスタントの生成したままIWPのようにカスタマイズ一切なしで使うつもりでなければ、PHPを勉強しないことにはどうにもなりませんよ。
レコード閲覧(browserecord.php)は全面書き換えになります。
戻る時に「検索条件復帰・検索実行・レコードへ移動」というスクリプトを実行するように書き換える
途中で送ってしまった。。。
書き換える方が簡単そうだけど、条件復帰ができないので、保存しておかないといけないのですが、FM11に検索条件の保存てありましたっけ?
>closer様
検索ボタンの右下三角▼を押すと「現在の検索を保存」がありますが、
これを使う形になるのでしょうか?
PHPをもっと理解しないと、
検索条件復帰・検索実行・レコードへ移動のスクリプト実行すらままならない感じですよね・・・。
精進致します。
セッションが使われてるんですか。ならば、#1の2つめの引用先にある $_GET['search_query'] が使えませんかね? 名前からして検索条件ぽいし、セッション変数に入ってるっぽい。
でも、これが解決したとしても、サイト全体を構築しようと思えばさらなる疑問が発生するだろうし、それくらいなら自分でphpコード書いた方が簡単ですよ。
カスタムWebのマニュアルってたかだか60ページくらいしかないし、その中で第5章だけ分かれば十分だし。
自分の経験では、FileMakerでやることはテーブル、フィールド定義だけ、FileMaker固有の機能はほとんど使いません。レイアウトも単にフィールドを配置するだけで何もしません。おそらく全体の10%もないのではないかな。
時間がかかるのはhtmlでページを組むこと、特にフォームなどのインターフェイスですね。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 526.66 KiB (Peak: 547.56 KiB) ]