
Perlは超初心者です。
既存テキストデータファイルを編集して、上書き保存できるようしたくて、次のようなテキストデータを
=====
山田
田中
加藤
・
・
=====
読込んで、次のようなHTMLを作成する様にしました。
<input type='text' name='name[0]' value='山田'>
<input type='text' name='name[1]' value='田中'>
<input type='text' name='name[2]' value='加藤'>
・
・
ここから、テキストボックスの値を編集して、Submitで別Perlプログラムにデータを送信し、次のようなプログラムでデータを読込めば
========================================================================
$count = $in{'count'}; #データのレコード件数です。ここは問題ありません。
for($x=0;$x<=$count;$x++){
$simei[x]=$in{'name[x]'};
}
========================================================================
$simei[0]=山田、$simei[1]=田中、$simei[2]=加藤、・・・と配列変数に入って、それをファイルに上書きするつもりだったのですが、変数には何も代入されないようです。
どうすれば、私の思うようになるでしょうか?
No.1ベストアンサー
- 回答日時:
配列に入れることは無理です。
perlではなく、HTML/FORMの制限です。配列は普通の文字に展開して、perlで受け取ったときに配列に分解してください。
for($x=0;$x<=$count;$x++){
$simei[$x]=$in{"name_$x"};
}
input の nameも同様にすれば OKでしょう。
先の質問から引続きありがとうございます。
早速作成するHTMLを
<input type='text' name='name[0]' value='山田'>
を
<input type='text' name='name_1' value='山田'> に
for($x=0;$x<=$count;$x++){
$simei[x]=$in{'name[x]'};
}
を
for($x=0;$x<=$count;$x++){
$simei[$x]=$in{"name_$x"};
}
にして実行してみましたが、やはり値を取得しません。
困ったな・・・
データをアップデートする方法の考え方自体おかしいのでしょうか?
一般的にはどんなふうにこの処理を行うのでしょうか?
No.2
- 回答日時:
巧くいかないですか...。
私は実際この方法で巧くいってるのですが。そうなると $in{}にちゃんと展開されているか、という問題になりますね。
while (($name, $value) = each(%in)) {
print "$name = $value\n";
}
で値がどういう風に格納されているか確認してください。
あと念のため。
> <input type='text' name='name_1' value='山田'> に
> for($x=0;$x<=$count;$x++){
> $simei[$x]=$in{"name_$x"};
> }
$x は 0から始まっているので、HTMLのname は name_0 にしないと、ですね。
この回答への補足
in{}にはデータが展開されていました。
ということは、それが配列に格納されないというところですね。う~ん、あれこれ試してみます。
すみませんね。何から何までお世話になります。
その後、いろいろ変更してやってみて、何とかうまく値を取得できました。おっしゃっていたとおりでした。
ありがとうございました。
感謝!感謝です。少々とろいのでいらいらするかもしれませんが、質問を上げたときは宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語について。
-
VB6の公式リファレンスはありま...
-
範囲指定したセルを1つずつ飛...
-
画面を強制的に再描画させる方法
-
GIFアニメをループさせたくない
-
ループの後判断どんな時使うの
-
CSVファイルの特定の行だけを読...
-
スリザーリンクの問題をランダ...
-
ループフリー
-
エクセルの当番表を作っていま...
-
一巡伝達関数と開ループ伝達関数
-
隣同士の数字を足し合わせる
-
vb.netです。2次元配列の要素を...
-
ネットワークループとルーティ...
-
Do文を使い方について
-
乱数の桁数指定、または範囲指定。
-
VB2010でCSVファイルの読み込み
-
VBAでの一時停止と再開の方法
-
「偶数・奇数の和」のフローチ...
-
ListBox 複数選択 で オートフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6の公式リファレンスはありま...
-
C言語について。
-
ファイルからデータを読み込ん...
-
双方向リスト(?)
-
PerlでXMLのフィルタリング
-
変数名を任意の数だけ増やしたい。
-
Perlで縦横変換のような事をし...
-
二つの変数が同じ物を指すよう...
-
JAVAのリファレンスについて
-
HTML::TemplateのTMPL_LOOPにつ...
-
多次元配列でソートしたい
-
画面を強制的に再描画させる方法
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
VBのReturnの使い方
-
流れ図(フローチャート)が分か...
-
CSVファイルの特定の行だけを読...
-
範囲指定したセルを1つずつ飛...
-
VBAでの一時停止と再開の方法
-
乱数の桁数指定、または範囲指定。
おすすめ情報