会員登録で5000円分が当たります

良かったら教えてください。
セレクトメニューで2つの項目や値を渡す方法は
ありますか?
普通は、
<select name="test">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
と言う感じですが、
「テスト」を選ぶと
name="test1" name="test2"の項目で、
value="1111" value="2222"
選択項目は、1つですが、2つの項目、
2つの値を次のCGIに渡す事は、
可能でしょうか?
教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

たぶん ANo1 の elttac さんも、この質問の意味を


解釈するのに悩まれたと思いますが・・・

> 「テスト」を選ぶと
この行から質問文が意味不明になります(汗)
「テスト」ってなんでしょう?

> 選択項目は、1つですが、
> 2つの項目、2つの値を次のCGIに渡す事は
「選択項目が1つ」という点からすると
ANo1 さんの「項目を2つ以上選択する」という解釈
ではないのかなぁと思いまして、別の解釈を

<select name="test">
<option value="test1=1111&test2=2222">「テスト」</option>
</select>

ってしておけば、「テスト」を選択すると
test = "test1=1111&test2=2222"
という値が CGI に送られます。

あとは、送られてきた値を & で分割し
それぞれを = で分割し、前半を変数名・後半を値として
解釈すれば、いいわけです。

CGI の言語が Perl なのか PHP なのか、書いてないので
プログラム例を提示させてあげられなくて残念ですが
意図は伝わったでしょうか?
    • good
    • 0
この回答へのお礼

回答有難うございます。
教えていただいた手法でいけました。
ありがとうございます。

お礼日時:2004/07/28 13:31

 1 つのセレクトメニューで 2 つ以上の項目を渡す,ということでよろしいでしょうか。



<select name="test" multiple>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

と記述してみてください(multiple を加える)。これで,複数の項目を選択できるようになります。それで,CGI に渡されるときには,3 と 4 が選択されている場合ですと,

tset=3&test=4

のように渡されます。
 このとき,多くのブラウザで,コントロールがドロップダウン式でなくリスト式になります。
    • good
    • 0
この回答へのお礼

回答有難うございます。
この方法も参考にさせていただきます。

お礼日時:2004/08/03 20:45

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフォームで同じ複数のnameで違うvalueの送信

始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは
一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、
phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、
どうすればいいのでしょうか?・・・以下タグです。
昨日から、ここから先に進めません。。
先輩方助けてください、本当によろしくお願いします。

<form action="http://hoge.net/hoge/hogecheck.php" method="post">
<input type="hidden" name="site" value="hoge">
<input name="id" type="text" id="idform" maxlength="10" />

<input type="hidden" name="kin" value="3000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="5000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="10000">
<input type="image" src="buybtn.gif" />
<input type="hidden" name="kin" value="20000">
<input type="image" src="buybtn.gif" />

</form>

始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは
一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、
phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、
どうすればいいのでしょうか?・・・以下タグです。
昨日から、ここから先に進めません。。
先輩方助けてください、本当によろしくお願いします。

<form action="http://hoge...続きを読む

Aベストアンサー

No.2の回答者です。
スミマセンm(__)m、Javaでしたね。PHPで書いてしまいました。。。

Java だったらこれで取れます。(HTML側の修正は不要です。)
String[] kin= req.getParameterValues("kin");

Qselect要素のvalueを配列で取得したいです

select要素のvalueを配列で取得したく、下記のサンプルを動かそうと試みました。

<html>
<head></head>
<body>
<form>
<!-- ここに<select name="c1">~<select name="c20">の20個のselectがあるとする -->
</form>
<input type="button" value="はい" onclick="test(this.form)">

<script type="text/javascript">
function test ( form ) {
var values = new Array();
for ( var i=0; i < 20; i ++ ) {
var elm = form.elements['c'+i];
values[i] = elm.options[elm.selectedIndex].value;
}
}
</script>
</body>
</html>


このようなサンプルを動かそうとしたのですが、
var elm = form.elements['c'+i];のところの['c'+i]が正しくないようで
「elm is underfind」というエラーが出てしまいます

<script>
function myForm (form) {
var values = new Array();
for ( var i=0; i<20; i++ ) {
var elm = form.elements[i];
values[i] = elm.options[elm.selectedIndex].value;
document.write(values[i] + "<br />");
}
}
</script>
インデックス名を'c'+iからiにすると取得できるのですが、
ブラウザが読み込みをやめない状態になってしまいます。
select要素のnameはc1から始まりc20と何も換えていません。
何が間違っているのでしょうか。

select要素のvalueを配列で取得したく、下記のサンプルを動かそうと試みました。

<html>
<head></head>
<body>
<form>
<!-- ここに<select name="c1">~<select name="c20">の20個のselectがあるとする -->
</form>
<input type="button" value="はい" onclick="test(this.form)">

<script type="text/javascript">
function test ( form ) {
var values = new Array();
for ( var i=0; i < 20; i ++ ) {
var elm = form.elements['c'+i];
values[i] = elm.options[elm.selectedIndex].value;
}
}
</script>
</b...続きを読む

Aベストアンサー

具体的にはこんなかんじ

<script>
function test(f) {
var values = new Array();
for ( var i=0; i < 3; i ++ ) {
var elm =f.elements['c'+(i+1)];
values[i] = elm.options[elm.selectedIndex].value;
}
alert(values);
}
</script>
<form>
<select name="c1">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="c2">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="c3">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="button" value="はい" onclick="test(this.form)">
</form>

具体的にはこんなかんじ

<script>
function test(f) {
var values = new Array();
for ( var i=0; i < 3; i ++ ) {
var elm =f.elements['c'+(i+1)];
values[i] = elm.options[elm.selectedIndex].value;
}
alert(values);
}
</script>
<form>
<select name="c1">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="c2">
<option value=""></option>
<option value="1">1</option>
<option value="2...続きを読む

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

Qjavascriptでセレクトボックスの"selected"を動的につ

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
</select>月

<select name='day'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>
<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>
<option value='25'>25</option>
<option value='26'>26</option>
<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日


このセレクトボックスに、例えば今日の日付"2010年9月30日"だったら、それぞれの年、月、日の<option>に"selected"をつけたいのですが、javascriptではどのようにして実現したら良いのでしょうか?

よろしくお願いします。

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8...続きを読む

Aベストアンサー

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>月

<select name='day'>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日
</div>
</form>

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<opt...続きを読む

Qチェックボックスから複数のvalueを取り出す

HTMLフォームから、action="file.php"でデータの受け渡し→PHPで送られてきたvalueに応じて文章を出力、というプログラムを作っています。

例:
グループAのラジオボタン1にチェック、送信
→グループAで押されたラジオボタンを送信されたvalueで判別、この場合はvalue==A
→value==Aの場合に表示する文章を変数に受け渡し、その変数で表示

ラジオボタン、テキストボックスのvalueは$_POST['XXX']で取り出せたのですが、チェックボックスのデータだけが取り出せません。こちらの質問を検索したとき、多次元配列という言葉を見かけたのですが、いまいちよく分かりませんでした。
チェックボックスの複数のvalueで、上記の例のような動きを実現させるにはどうしたらいいでしょうか。どなたかご教授ください。

Aベストアンサー

チェックボックスはちょっと特殊

まずHTML部分で、以下のように定義します
<input type="checkbox" name="sample[]" value="test1">test1
<input type="checkbox" name="sample[]" value="test2">test2

ここでは、nameの部分に[]をつけるのがポイント


次にphpで受け取る方法として、
$sample = $_POST["sample"];
で問題ありません。

受け取ったデータを使うときは、$sampleは配列になっていますので、
仮に上記のtest1とtest2両方にチェックが付いているとしたら、
$sample[0]にはtest1が、$sample[1]にはtest2が入っています。

$sampleをforeachで使うか、$sampleのデータ数を調べてforでループさせるなどで使えます。

Qselect値をhiddenのvalueに渡したい

selectで選択されたvalue値を下のhiddenのvalue値(id)に渡して、
hiddenのvalue値(id)がselectで選択されたvalue値になるような
フォームを作りたいのですが、作り方をお教え頂ければ幸いです。

<form name="form" method="get" action="index.cgi">
<select name="mode">
<option value="100023">和書</option>
<option value="100241">洋書</option>
<option value="100524">エレクトロニクス</option>
</select>
<input type="hidden" name="serch_janru" value="id" />
<input type="text" name="keyword" value="keyword" /><input type="submit" name="submit" value="商品を検索" />
</form>

ソース等、具体的にお教え頂けると助かります。
どうぞ宜しくお願い致します。

selectで選択されたvalue値を下のhiddenのvalue値(id)に渡して、
hiddenのvalue値(id)がselectで選択されたvalue値になるような
フォームを作りたいのですが、作り方をお教え頂ければ幸いです。

<form name="form" method="get" action="index.cgi">
<select name="mode">
<option value="100023">和書</option>
<option value="100241">洋書</option>
<option value="100524">エレクトロニクス</option>
</select>
<input type="hidden" name="serch_janru" value="id" />
<input type="text" name="...続きを読む

Aベストアンサー

<form>には一切手をつけないとして、
javascriptで
<script type="text/javascript">
<!--
window.onload = function () {
//@cc_on
document./*@if (1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/
'change', function (evt) {
var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/;
if (e.type=="select-one" && e.name=="mode"){
alert(e.value);
var elements = document.getElementsByName("serch_janru");
elements[0].value=e.value;
}
}, true);
}
// -->
</script>
こうできます。

<form>には一切手をつけないとして、
javascriptで
<script type="text/javascript">
<!--
window.onload = function () {
//@cc_on
document./*@if (1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/
'change', function (evt) {
var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/;
if (e.type=="select-one" && e.name=="mode"){
alert(e.value);
var elements = document.getElementsByName("serch_janru");
elements[0].value=e.value;
}
}, true);
...続きを読む

Qで配列(複数の要素)を渡したいとき?

こんにちわ,

今HTML+PHPで
$hoge[]にいくつかの要素が入っているとき,
それをあるfoo.phpというページに渡したいとき,
echo '<form action="foo.php" method="POST">';
echo '<input type="hidden" name="$hoge[]" >';
echo '</form>';
としたのですが,うまくいきません。

どうしたらよろしいでしょうか。

Aベストアンサー

nameじゃなく、valueでは?
あとやるなら、
for($i=0;$i<count($hoge);$i++){
print "<input type=\"hidden\" name=\"$hoge[$i][0]\" value=\"$hoge[$i][1]\">";
}
とか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング