• ベストアンサー

検索インデックスを複数指定したい場合

お忙しいところ、お世話になります。 例えば、検索用のa href=にXXXXX.cgi?mode=list&index=10と指定していて cgiに対し、listとindex=10に合致するものをtargetに表示するようにしておりますが、index=40も必要な場合は、どのように記述すればよろしいでしょうか? ただ単にlist&index=10&index=40では、うまくいきません。 mode=list&index=10とmode=list&index=40の結果を合わせてtargetに表示させるように命令をおこないたいです。 ご教授よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • vsba23895
  • ベストアンサー率58% (18/31)
回答No.5

use CGI_Lite; my $cgi= new CGI_Lite; my $form= $cgi->parse_form_data(); とすれば、 my $p= $form->{index}; の $p は ARRAY へのレファレンスになり、 @$p に、10 と 40 が入ります。(順番は無保証)。 index=10 だけで CGI を呼ぶと、$p はスカラになります。 input type="checkbox" を複数設置したときと同じことです。

参考URL:
http://search.cpan.org/~shgun/CGI_Lite-1.8/CGI_Lite.pm
robben1234
質問者

お礼

ご回答ありがとうございます。 返事が、送れて申し訳ありません。 input type="checkbox" を複数設置の場合と同じようにする考えは思いつきませんでした。 参考URLは内容が長いので、ちょっときついですけど、 がんばります。 また、ご教授よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.4

index=10-40 とした場合、$in{'index'}に 10-40と入るでしょうから、 (変数は適宜読み替えてください) @index = split("-",$in{'index'}); とすれば配列に入ります。 これを if ($index == $index[0] or $index == $index[1]) { #HIT } とかすればいいと思いますが(やり方はいろいろあります。元のソースによって処理が変わると思います)、 これで分かるんだったら質問してないよなぁと思うので、 詳しい解説は実際のソースがないと説明できません。

robben1234
質問者

お礼

ご回答ありがとうございます。 返事が、送れて申し訳ありません。 上記のように書かれているものを一回変数で分ける 方法ですね。 参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

こんにちは。 index=10-40とした場合、 indexの値を変数に代入したときに10-40になりませんかね? それをさらに分解処理して配列なんかに入れればループで 受け取った数分出力できると思ったのですが。 受け取ったindexの分割処理が必要になります。 1.indexの内容を受け取る 2.「-」でindexの値を分割して、取得できたものを配列に。 3.配列の数ループを行い、順に取り出す(例の場合は10と40の二回繰り返すループ) ごめんなさい、perlはあまり使わなく、ソラでソースかけません。 >何か指定方法があったかなあと探しております。 これはもう設計次第じゃないですかね? 複数のindexを指定する場合は ・104030として受け取り側で2桁ずつ分割して処理(3桁に対応出来ない) ・10-40-60として-で分割して処理(何桁でもOK) ・10-40と「-」で区切った場合は10~40を表示(範囲指定) etc 設計次第でどうにでもなると思います。

全文を見る
すると、全ての回答が全文表示されます。
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

そこだけ修正しても、 CGIの中身を修正しないと動かないと思いますが・・・?

全文を見る
すると、全ての回答が全文表示されます。
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 言語が何だかわかりませんが、 .cgi?mode=list&index=10-40 という形にして indexを受け取ってから-で分割すれば10と40という値が取れると思います。 その10と40を使ってはどうでしょうか? 分割した数を変数に持っておけば、ループ処理にて実行できるので 3個以上になっても簡単に対応できると思います。

robben1234
質問者

お礼

回答ありがとうございます。 すいません。PerlのCGIで作成しております。 内容的にはcgiがmodeとしてlistとindexの10と40を受け取れればよいのであっておりますが、指定が 10-40では10と40という値は取れませんでした。 何か指定方法があったかなあと探しております。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • サイト内全文検索CGI、インデックス無、検索拡張子指定可

    サイト内全文検索CGIを探しており、いろいろなScriptを見てきました。 ですが、自分の理想としている物がみつかりませんでした。 改造も試みたんですが想うようにいきませんでした。 次の条件に当てはまるCGIがありましたら教えてください ・Perlでかかれている ・インデックス作成型ではない ・検索する拡張子を指定できる htmのみ、htmlのみ、txtのみ、または複数指定といった感じです ・検索結果を数件ずつに分けて表示できる 検索すると1件から20件を表示し、次のページで21件から40件を表示するといった感じです 改造された再配布のものでもいいです。 上の様な全文検索CGIを知っていたら教えてください。 宜しくお願いします

    • 締切済み
    • CGI
  • フレーム内のtarget指定を全てまとめて指定するには?

    こんにちは、いつもお世話になっております。 現在、ある事情からブログの最新情報投稿だけを別ページのインラインフレーム内に表示しています。 最新投稿のリストですので、 <ul> <li><a href="●.html">第1回投稿</a></li> <li><a href="●.html">第2回投稿</a></li> <li><a href="●.html">第3回投稿</a></li> </ul> このようなタグになっています。 これはブログのCGIが自動的に生成するものですので、上に直接 <li><a href="●.html" target="_blank">第3回投稿</a></li> と書き換えても意味がないのですが、この中のページではなくて <iframe>タグのあるページの方からtargetを指定することはできないでしょうか? わかりにくい説明かと思いますが、どなたか意図がお分かりの方、回答よろしくお願いします。

    • ベストアンサー
    • HTML
  • CGI検索エンジンをHTMLに

    コスモナビの検索エンジンをHTMLで書こうと無理しているのですが、 Another HTML-lint gatewayのチエックで <A> の HREF 属性の URI `./navi.cgi?mode=view&class=0&part=1` は正しくない書式です。となります。正しい記述はどのようになりますか?。

    • ベストアンサー
    • HTML
  • <A> の属性 `TARGET`の代わりのタグですが。

    ご指導を、お願い致します。 <TD><A href="○○○//XXXXXX.XXXXX" target=" _blank"></TD> このタグでは文法記述では、 『<A>のTARGET属性は、その利用自体が薦められていません。 ID属性を使いましょう。』 と表示されますが、>blank<を必要として(新規ページで表示) 命令的な>target<の代わりには何のタグが必要なのでしょうか? ID属性での、代わりに入るタグは、何でしょうか。 ○○○○○="_blank">で教えて頂けますでしょうか。 CSSを使うべきも含めての回答も頂けると、有り難いです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • 一つのリンクに複数のURLを指定

    一つのリンクに複数のURLを指定できますでしょうか? 想像タグ <a href="http://www.google.co.jp/" & "http://www.yahoo.co.jp/" target="_blank">検索</a> JavaScriptでも 構いません。 ネットではこんなのが見つかりました。 Bridges  |  BridgeURL http://bridgeurl.com/

    • ベストアンサー
    • HTML
  • 親ウィンドウ(scriptで言うopener)を指定するtarget属性

    親ウィンドウ(scriptで言うopener)を指定するtarget属性 (サブフレームではなく)サブウィンドウから親ウィンドウを指定するためのtarget属性は、どう記述すれば良いか悩んでおります…。 たとえば具体的には… サブウィンドウを以下のアンカータグを使って開きます。 ■親ウィンドウ内 <a href="sub_page.html" target="winSub" onclick="window.open('sub_page.html','winSub');return false;"> 開かれたサブウィンドウから親ウィンドウをナビゲートする、アンカータグを表示したいのですが、 ■サブウィンドウ内 <a href="page2.html" target="★" onclick="opener.location.href='page2.htm';return false;"> 上記の★の部分には何を指定すれば良いのか解りません。 ※なお、ご覧のとおりscriptオフ環境に対する記述部分が問題になっており、scriptオンでは期待通りの動作をします。 サブウィンドウはサブフレームと同等に扱われると考え、「_parent」や「_top」を指定しても、単に自ウィンドウがページジャンプしただけでした(とりあえずIEのみでテスト)。 どなたか、target属性の指定方法、あるいは、そもそもtarget指定で開いたサブウィンドウには親子関係がない、などの情報など、何かありましたら、ご教授のほどお願いいたします。

    • ベストアンサー
    • HTML
  • index.htmlでも、表示させたい。

    宜しくお願いします。 document.write(location.href); では http://www.goo.ne.jp/home.html と表示されますが、そのWebページがデフォルト、つまり index.html では http://www.goo.ne.jp/ までしか表示されず、index.htmlが省略されてしまいます。 ちゃんとファイル名まで表示させたいのですが、方法をご教授頂けませんでしょうか。 location.pathnameでも試したのですが、.hrefと同じでした。色々ネット情報を漁って見たのですが、手がかりらしいものがなく、こちらに質問させて頂いた次第です。 どうぞ宜しくお願いします。

  • CGIでのtarget指定について

    CGI初心者です。 下記図のようなイメージでhtmとcgiを組み合わせて表示させたいと考えています。 index.htm | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|←bunner.htm |  ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | |      |                    | | ___|_____________|  ↑ menu.cgi       ↑mein.htm index.htmにFRAMEタグを使用して表示させています。 menu.cgiに固定リンクを表示し、リンクをクリックした時にtarget指定でmein.htmに表示させたいです。 IE6では上手くいったのですが、IE7以降で試した場合、新規ウインドウでリンクが開かれてしまいます。(target=_blankと同じ動きです) ちなみにFireFoxでは新規タブに表示されます。 html形式の時点では問題なくできるようなので、恐らくcgiが絡んでいるのが原因だと考えています。 そもそもこのような作り方が問題なのでしょうか? menu.cgiに当たる部分は、固定リンクの他にテキストファイルを読み出して表示させるような可変リンクを表示したい部分もあるのですが、回避方法が見付からなく困っています。 どうか、お力添え宜しくお願いします。

    • ベストアンサー
    • CGI
  • リンクのターゲット指定について教えてください

    リンクのターゲット指定について教えてください。 index.htmlから別ウィンドウで開いた000.htmlがあるとします。 000.htmlからリンクでindex.htmlのページにリンクを貼りたい(リンク先を表示させいたい)場合はターゲットをどのように指定すればいいのでしょうか? ちなみに、index.htmlはフレームにはなっていません。 よろしくお願いします。

  • 正規表現で一発置換できるでしょうか?

    サイトにあるHTMLを読み込み、その中のリンク全てに target指定を追加して表示するPHPについてアドバイスをお願いします。 取込元のHTMLは↓な記述(全リンクにtarget指定は無い)  … <a href="http://bakubaku.com">ばくばく</a> …  … <a href="http://mogumogu.net">もぐもぐ</a> …  … <a href="http://karikari.org">かりかり</a> … これを、↓のように変換して出力したい  <a href="http://bakubaku.com" target="_brank">ばくばく</a>  <a href="http://mogumogu.net" target="_brank">もぐもぐ</a>  <a href="http://karikari.org" target="_brank">かりかり</a> とりあえず、  ・<a href…> のリストを preg_match_allで 抽出  ・要素数だけ 末尾の > を target="_brank"> に変換/入替 といった処理で結果は正しく出ますがパフォーマンス的に痛いですよね。 このような検索置換処理を、正規表現を使って、一発でできないものでしょうか? (すみません、、正規表現よく分かっていません、、)

    • ベストアンサー
    • PHP
プレミアム機能設定できません
このQ&Aのポイント
  • 製品認証するためにモノクロコピーボタンとカラーコピーボタンを同時押ししてずっと待っていても画面変わらず、手を離したら「認証できません」の画面が出る。の繰り返し。
  • iOSで無線LANに接続されているブラザー製品の製品認証ができません。
  • IP電話を使用している環境でブラザー製品のプレミアム機能設定ができないトラブルが発生しています。
回答を見る