14歳の自分に衝撃の事実を告げてください

初歩的な質問で申し訳ございません。配列でデータを入力し、POSTで配列のデータを渡す方法を知らなくて困っています。いろいろ調べましたが、見つかりません。
だれか、教えてください。
.....
&ReadParse(*in);
for ($i = 0 ; $i <=10 ; $i++){
   $data[$i] = $in{'data[$i]'};
}
sub main {
。。。以下修正部分・。。。
print "<form method=\"POST\" action=\"$userpro\">";
print " <input type=\"hidden\" name=\"mode\" value=\"miss1\"><p>";
print " <input type=\"text\" name=\"data[1]\" size=\"20\" value=\"$data[1] \">";
print " <input type=\"text\" name=\"data[2]\" size=\"20\" value=\"$data[2] \">";
print " <input type=\"text\" name=\"data[3]\" size=\"20\" value=\"$data[3] \">";
......
print " <p><input type=\"submit\" value=\"修正\" name=\"B1\"></p>\n" ;
print "</form>\n" ;
・・・・

}

#Submit後実行される関数
sub miss1 {
print "Content-type: text/html\n\n";
for ($i = 0 ; $i <=10 ; $i++){
print "$i-$data[$i]<br>";
}
exit;
}

結果は
0-空(空白)
1-空(空白)
2-空(空白)
。。。
にです。

何が間違っているでしょうか。よろしくお願いします。

A 回答 (2件)

配列を利用するのではなく、この場合は、$data_1や$data_2などの変数を利用するのが無難です。

<input type> がtextですので。
ただ、<select ... multiple>やcheckboxの場合は、別の処理の仕方を工夫する必要があります。
一番良いやり方は、&ReadParseを使わず、連想配列を活用する方法です。
インプレス社の「Perl5 パワフルテクニック大全集」の、第7章にヒントがあります。ご参考まで。

尚、PHPを使えば、abparkさんが書かれたような「配列」を利用することが出来ます。
    • good
    • 0
この回答へのお礼

X-Terra様
ありがとうございました.
自分も配列ができなかったので、$data_1。。。の方法をとっては
見ましたが、できなかったので質問しましたが、コメントのあと
もっとやってみるとできました.
本当にありがとうございます.
以下のようにしました.

sub correct {
print "Content-type: text/html\n\n";
print "data1-list->$data1<>$data2<>$data3<p>\n\n";
for ($i=1;$i<=3;$i++) {
$da = "data$i";
print " $i-> $$da <br>\n\n";
}
}

//結果は
data1-list->test1<>test2<>test3
1-> test1
2-> test2
3-> test3
以上でできました.

お礼日時:2001/12/11 12:53

HTMLが問題で、name の値に [ があるからだと思いました。



<html>
<input name=inp value=test01>
<input name=inp[0] value=test02>
<button onClick=alert(inp.value)>inp</button>
<button onClick=alert(inp[0].value)>inp[0]</button>
<html>
    • good
    • 0
この回答へのお礼

A__様
ありがとうございました.
コメント、役に立ちました.

お礼日時:2001/12/11 12:55

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


おすすめ情報