アプリ版:「スタンプのみでお礼する」機能のリリースについて

お忙しいところ、お世話になります。
例えば、検索用の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に表示させるように命令をおこないたいです。
ご教授よろしくお願いします。

A 回答 (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_L …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
返事が、送れて申し訳ありません。

input type="checkbox" を複数設置の場合と同じようにする考えは思いつきませんでした。
参考URLは内容が長いので、ちょっときついですけど、
がんばります。

また、ご教授よろしくお願いします。

お礼日時:2006/08/14 11:00

index=10-40


とした場合、$in{'index'}に 10-40と入るでしょうから、
(変数は適宜読み替えてください)
@index = split("-",$in{'index'});
とすれば配列に入ります。
これを

if ($index == $index[0] or $index == $index[1]) {
#HIT
}

とかすればいいと思いますが(やり方はいろいろあります。元のソースによって処理が変わると思います)、
これで分かるんだったら質問してないよなぁと思うので、
詳しい解説は実際のソースがないと説明できません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
返事が、送れて申し訳ありません。

上記のように書かれているものを一回変数で分ける
方法ですね。
参考になりました。

お礼日時:2006/08/14 10:55

こんにちは。



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

設計次第でどうにでもなると思います。
    • good
    • 0

そこだけ修正しても、


CGIの中身を修正しないと動かないと思いますが・・・?
    • good
    • 0

こんにちは。



言語が何だかわかりませんが、
.cgi?mode=list&index=10-40
という形にして
indexを受け取ってから-で分割すれば10と40という値が取れると思います。
その10と40を使ってはどうでしょうか?

分割した数を変数に持っておけば、ループ処理にて実行できるので
3個以上になっても簡単に対応できると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
すいません。PerlのCGIで作成しております。

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

お礼日時:2006/08/11 10:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!