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

下記のセレクトボックスがあります。

 print "<select name='atai'>";
 print "<option value='abc'>abc</option>";
 print "<option value='123'>123</option>";
 print "<option value='xyz'>xyz</option>";
 print "</select>";

現在、選択されている値を $int の変数に入力
したいのですが、どうしたらいいのでしょうか。
例えば、$int=・・・・・・; というふうに代入
文でできることなのでしょうか。
 
この場合、現在表示されているCGIで、
$int が、abc か 123 か xyz か知りたい
のです。

A 回答 (6件)

こんなことでしょうか。


IE6のみ確認。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>連動select</title>
<script type="text/javascript">
<!--
B = new Array();
B[0] = new Array("a","i","u","e","o");
B[1] = new Array("ka","ki","ku","ke","ko");
B[2] = new Array("sa","si","su","se","so");
B[3] = new Array("ta","ti","tu","te","to");
B[4] = new Array("na","ni","nu","ne","no");

function select(){
var No=document.getElementsByTagName('select')[0].selectedIndex;
var SELECT = document.getElementsByTagName('select')[1];
var OPTION = SELECT.getElementsByTagName('option');
var cc = OPTION.length;
if(cc != 0){for( k = 0 ; k < cc ; k++ ){SELECT.removeChild(OPTION[0]);}}
for(k = 0;k < B[No].length;k++){
var OPT = document.createElement ('option');
var OPTTEXT = document.createTextNode(B[No][k]);
SELECT.appendChild(OPT);
OPT.setAttribute('value',B[No][k]);
OPT.appendChild(OPTTEXT);
}
}
//-->
</script>
</head>
<body onload="select()">
<select onchange="select()">
<option value='a'>a</option>
<option value='ka'>ka</option>
<option value='sa'>sa</option>
<option value='ta'>ta</option>
<option value='na'>na</option>
</select>
<select></select>
</div>
</body>
</html>
    • good
    • 0
この回答へのお礼

回答どうもありがとうございました。

お礼日時:2006/07/28 21:32

もしかして、こういうことですか?



http://www.fromdfj.net/javascript/pulldown2.html
    • good
    • 0

サーバ(CGI)側とクライアント側に分けて、順にどういう処理になればよいか書いてもらえると助かります。



1)クライアントからCGIへページ表示のリクエスト
2)CGIが1)のリクエストを元にページを出力
3)クライアントがselectで何らかのoptionを選択
4)クライアントがsubmitする
5)CGIが4)で送信されたデータを受け取る

とあるわけですが。

5)で受け取るのは問題ないわけで、今回の要求は3)で受け取りたいということであってますか?

3)でCGI側が選択されたoptionの値を知るのは、基本的に不可能です。

やろうとするなら、選択されたときにjavascriptでCGIに送信する方法でしょう。

やりたかったのは、selectで選択されたoptionの値に応じて同ページの他の部分の値などを変更したいってことでしょうか?

この回答への補足

nebelさんの言われる通り、(3)で受け取りたい
ケースになります。クライアントがセレクトでoptionで選択した
タイプによって、もうひとつのセレクトボックスの選択肢が異なってくるということです。
 
JavaScriptでの行うときは、どういう記述になりますか?教えて下さい。

補足日時:2006/07/14 12:31
    • good
    • 0

(1)サーバー


print "<select name='atai'>";

(2)クライアント(ブラウザ)
サーバーから受けたHTMLデータを表示、セレクトフィールドの選択と変更
----------
| abc ▽ |
|--------|
| 123 |
| xyz |
----------

(2)' ブラウザの送信ボタンを押す

(3)サーバー
クライアントから送信されたデータを受信


で、(2)'の送信ボタンを押したタイミングで良いのでしょうか?
それとも(3)のサーバーがデータを受信したタイミングでよいのでしょうか?

(2)であれば、Perlでは不可能です。
JavaScriptなどを使って下さい。

(3)であれば、たとえば<select>ではなく
<input type="text" name="atai">
で表示して、クライアントにて入力してもらった場合の値は取得出来ますか?

この回答への補足

talooさん、ありがとうございます。補足します。
(2)のセレクトフィールドに変化があったときに
違うセレクトフィールドに表示させる内容を変化
させたいのです。 
 
例えば、「abc」の場合、あ行の文字あ、い、う、え、お、から選択、
    「123」の場合、数字1、2、3、4、5から選択、
    「xyz」の場合、アルファベットa、b、c、d、eから選択、
という風に、sumitを押す前に、もうひとつの選択
フィールドを選択したいのです。

補足日時:2006/07/14 12:25
    • good
    • 0

TMEspionです。



No.1さん同様、補足が無ければ、どストライクな回答は困難かと思われます。

でもとりあえず一例として、
<input type="submit">を押して送信した内容を
「$value = $FORM{'$name'};」とかに格納するタイプのプログラムであれば、「$FORM('atai')」の中に「'abc'」、「'123'」、「'xyz'」のどれかが入ると思います。

全部こっちで想定した上での一例なので、全然的外れかと思いますが、一例ね。あくまで一例。

この回答への補足

すみません。補足します。
sumit前の処理になります。変化があったときでも
構いません。

補足日時:2006/07/13 19:32
    • good
    • 0

仕様要求がよくわかりません。



書かれているセレクトボックスを出力し、クライアントのブラウザで表示されますね。
その後、ユーザーがセレクトボックスで選択する。
その後、submitボタンを押してサーバに送信しますね。

どこの段階で選択されている値を変数に代入したいのでしょうか?

普通に考えるとsubmitされて送信されてきたデータをみて、選択されているoptionの値だと思うのですが。

送信されてきたデータの受け取りは、自作ですか?
もし自作ならば、どういうロジックで受け取っているのかわからなければ具体的なアドバイスは無理です。

それともCGI.pmとかcgi-bin.plなどをお使いですか?

この回答への補足

セレクトボックスが複数あって、最初のセレクトボッスを選択
した時に、次のセレクトボックスの選択するカテゴリを可変で
選択したいということです。なので、タイミング的には次の
セレクトボックスを押す時になります。
 
セレクトボックスの連動をなぜ使わないかというと、
それを使った場合、次のCGIへなぜかデータが渡らない
からです。すみません、補足になっているでしょうか。

補足日時:2006/07/13 17:32
    • good
    • 0

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