- 締切済み
同じname属性をまとめ未記入の項目を削除する方法
現在メールフォームを作成しており、アドバイスを受けながら一歩ずつ前進している者ですが今回も行き詰ってしまいました。度々の質問で心苦しいですが何卒宜しくお願いします。 言葉での説明が難しいので以下のアドレスに【ブラウザ入力画面】と【確認画面】のイメージを掲載しました。 http://homepage2.nifty.com/nippon/qe/qes.html htmlソースは以下の通りで同じ「msg」などname属性の物が存在します。 <h1>フォーム</h1> <FORM action="abc.cgi" method="POST"><INPUT type="hidden" name="location" value = "http://abc.com"> <INPUT type="hidden" name="subject" value="【フォームメール】"> <TABLE border="0" cellpadding="3"> <TBODY> <TR> <TD bgcolor="#ffeadf">メッセージ1:</TD> <TD><INPUT size="50" type="text" name="msg"></TD> </TR> <TR> <TD bgcolor="#ffeadf">メッセージ2:</TD> <TD><INPUT size="50" type="text" name="msg"></TD> </TR> <TR> <TD bgcolor="#ffeadf">質問:</TD> <TD><INPUT size="50" type="text" name="qes"></TD> </TR> <TR> <TD bgcolor="#ffeadf">名前:</TD> <TD><INPUT size="50" type="text" name="Name"></TD> </TR> <TR> <TD bgcolor="#ffeadf">メールアドレス:</TD> <TD><INPUT size="50" type="text" name="Email"></TD> </TR> </TBODY> </TABLE> <BR> <INPUT TYPE="submit" VALUE="確認"> <INPUT TYPE="reset" VALUE="リセット"><BR> </BODY> </HTML> name属性が同じ場合は改行ぜずに1つにまとめvalue属性の値をカンマで区切って1行で表示させたいと思っております。 また、ブラウザ側で入力が無かった項目は表示させないようにしたいと思っております。 いろいろとIF関数を試してみましたがうまく表示しません(;;) 現在以下のプログラムで全ての項目と値が1行づつ表示されています、どのように変更すれば良いでしょうか? $count = @DATA_N; foreach (0..$count-1) { if ($DATA_V[$_] =~ /\n/) { &jis("$DATA_N[$_] =\n$DATA_V[$_]\n"); print OUT "$msg\n"; } else { &jis("$DATA_N[$_] =$DATA_V[$_]"); print OUT "$msg\n"; } } push(@DATA_N,$name); push(@DATA_V,$value); なにとぞ宜しくお願いいたしますm(_ _)m
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- okmotokun
- ベストアンサー率59% (92/155)
お礼
okmotokun 様 いつもありがとうございます。昨日から書いていただいたプログラムを理解しようとcgiの本を購入して解読していますがなかなか難しいですね(^^;A これから素早く基本だけでも分かるようにして書いていただいたプログラムを理解します。本当にありがとうございました。