KENT-WEB サポートコーナー 過去ログ [ 0021 ]


記事No: 104
投稿日: 2007/04/05(Thu) 13:47:59
タイトルPostMailで教えてください!入力必須項目の順番を変える
ID情報: deconeco
投稿者: でこねこ
URLhttp://x03.2000710.net/test/sr-sep/contact/shiryoform.html

こんにちは。またまたPostMailのコトでご相談です。

チェックボックスで選択する項目を必須項目に設定しました。これは問題なく設定できたのですが、必須項目を未入力にした場合、入力確認画面で一番下に表示されてしまいます。

このチェックボックスでの選択は一番最初に選んでもらうものなので、確認画面でいきなり一番下になってしまうのはユーザーにとっても不便です。
これを何とかしたいのですが。

PostMailの解説ページに書かれていた

・コマンドタグ (1)
→ 入力必須項目を強制指定する(半角スペースで複数指定可)
→ ラジオボタン、チェックボックス対策
→ name値を「need」、value値を「必須項目1 + 半角スペース +必須項目2 + 半角スペース ...」
(例) <input type=hidden name="need" value="名前 メールアドレス 性別">

上記に習い、以下のように設定しました。

<input type=hidden name="need" value="ご希望の項目を選択して下さい">

最初はこれをフォームの一番下に記載しました。
次に一番最初に記載してもだめでした。

CGIの方で変えないといけないのでしょうか。

よろしくお願いいたします。


記事No: 109
投稿日: 2007/04/05(Thu) 15:47:06
タイトルRe: PostMailで教えてください!入力必須項目の順番を変える
ID情報: tems
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> こんにちは。またまたPostMailのコトでご相談です。
>
> チェックボックスで選択する項目を必須項目に設定しました。これは問題なく設定できたのですが、必須項目を未入力にした場合、入力確認画面で一番下に表示されてしまいます。
>
> このチェックボックスでの選択は一番最初に選んでもらうものなので、確認画面でいきなり一番下になってしまうのはユーザーにとっても不便です。
> これを何とかしたいのですが。
>
> PostMailの解説ページに書かれていた
>
> ・コマンドタグ (1)
> → 入力必須項目を強制指定する(半角スペースで複数指定可)
> → ラジオボタン、チェックボックス対策
> → name値を「need」、value値を「必須項目1 + 半角スペース +必須項目2 + 半角スペース ...」
> (例) <input type=hidden name="need" value="名前 メールアドレス 性別">
>
> 上記に習い、以下のように設定しました。
>
> <input type=hidden name="need" value="ご希望の項目を選択して下さい">
>
> 最初はこれをフォームの一番下に記載しました。
> 次に一番最初に記載してもだめでした。
>
> CGIの方で変えないといけないのでしょうか。
>
> よろしくお願いいたします。

過去ログに載っていますがバージョンがv3.3ですので念の為にv4.11の場合を載せておきます。
http://www.kent-web.com/support/old/66/0519.html

●postmail.cgi
#-------------------------------------------------
# 入力チェック
#-------------------------------------------------
sub err_check {
local($err, $cp_flag, $flag, $cell, $tmp);
open(IN,"$tmp_err2") || &error("Open Error: $tmp_err2");
print "Content-type: text/html\n\n";
while (<IN>) {
if (/<!-- cell_begin -->/) {
$flag = 1;
}
if (/<!-- cell_end -->/) {
$flag = 0;
local($key, $bef, $tmp);
#foreach $key (@key) { ## ←コメントアウト
foreach $key (split(/ /,$in{'orderlist'})) { ## ←追加
next if ($key eq "need");

#-------------------------------------------------
# フォームデコード
#-------------------------------------------------

-- 省略 --

# 必須入力項目
if ($key =~ /^_(.+)/) {
$key = $1;
push(@need,$key);
if ($val eq "") { $check++; push(@err,$key); }
}
$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val;
next if($key eq 'orderlist'); ## ←追加
push(@key,$key);

●postmail.htmlに以下追加(ここで指定した順番で確認画面に表示される)
<input type="hidden" name="orderlist" value="name email 性別 ページ メッセージ" />


記事No: 110
投稿日: 2007/04/05(Thu) 15:52:28
タイトルKENTさんへ
ID情報: tems
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

スクリプトを貼りつけると行間が空いてしまいます。前のサポート掲示板の時は問題ありませんでしたので不具合でしょうか。


記事No: 124
投稿日: 2007/04/05(Thu) 21:12:47
タイトル了解>BALさん
ID情報: kent
投稿者: KENT

> スクリプトを貼りつけると行間が空いてしまいます。前のサポート掲示板の時は問題ありませんでしたので不具合でしょうか。

本当ですね。これは失礼しました。
修正しておきました。


記事No: 112
投稿日: 2007/04/05(Thu) 16:56:01
タイトルRe^2: PostMailで教えてください!入力必須項目の順番を変える
ID情報: deconeco
投稿者: でこねこ
URLhttp://x03.2000710.net/test/sr-sep/contact/inquiry.html

> > こんにちは。またまたPostMailのコトでご相談です。
> >
> > チェックボックスで選択する項目を必須項目に設定しました。これは問題なく設定できたのですが、必須項目を未入力にした場合、入力確認画面で一番下に表示されてしまいます。
> >
> > このチェックボックスでの選択は一番最初に選んでもらうものなので、確認画面でいきなり一番下になってしまうのはユーザーにとっても不便です。
> > これを何とかしたいのですが。
> >
> > PostMailの解説ページに書かれていた
> >
> > ・コマンドタグ (1)
> > → 入力必須項目を強制指定する(半角スペースで複数指定可)
> > → ラジオボタン、チェックボックス対策
> > → name値を「need」、value値を「必須項目1 + 半角スペース +必須項目2 + 半角スペース ...」
> > (例) <input type=hidden name="need" value="名前 メールアドレス 性別">
> >
> > 上記に習い、以下のように設定しました。
> >
> > <input type=hidden name="need" value="ご希望の項目を選択して下さい">
> >
> > 最初はこれをフォームの一番下に記載しました。
> > 次に一番最初に記載してもだめでした。
> >
> > CGIの方で変えないといけないのでしょうか。
> >
> > よろしくお願いいたします。
>
> 過去ログに載っていますがバージョンがv3.11ですので念の為にv4.11の場合を載せておきます。
> http://www.kent-web.com/support/old/66/0519.html
>
> ●postmail.cgi
> #-------------------------------------------------
> # 入力チェック
> #-------------------------------------------------
> sub err_check {
>
> local($err, $cp_flag, $flag, $cell, $tmp);
>
>
> open(IN,"$tmp_err2") || &error("Open Error: $tmp_err2");
>
> print "Content-type: text/html\n\n";
>
> while (<IN>) {
>
>
> if (/<!-- cell_begin -->/) {
>
>
>
> $flag = 1;
>
>
> }
>
>
> if (/<!-- cell_end -->/) {
>
>
>
> $flag = 0;
>
>
>
>
> local($key, $bef, $tmp);
>
>
>
> #foreach $key (@key) { ## ←コメントアウト
>
>
>
> foreach $key (split(/ /,$in{'orderlist'})) { ## ←追加
>
>
>
>
> next if ($key eq "need");
>
>
>
> #-------------------------------------------------
> # フォームデコード
> #-------------------------------------------------
>
> -- 省略 --
>
> # 必須入力項目
>
>
> if ($key =~ /^_(.+)/) {
>
>
>
> $key = $1;
>
>
>
> push(@need,$key);
>
>
>
>
> if ($val eq "") { $check++; push(@err,$key); }
>
>
> }
>
>
>
> $in{$key} .= "\0" if (defined($in{$key}));
>
>
> $in{$key} .= $val;
>
>
> next if($key eq 'orderlist'); ## ←追加
>
>
> push(@key,$key);
>
>
> ●postmail.htmlに以下追加(ここで指定した順番で確認画面に表示される)
> <input type="hidden" name="orderlist" value="name email 性別 ページ メッセージ" />


記事No: 117
投稿日: 2007/04/05(Thu) 18:10:04
タイトル確認画面にいかない問題が
ID情報: deconeco
投稿者: でこねこ
URLhttp://x03.2000710.net/test/sr-sep/contact/inquiry.html

BAL様 早速のお返事ありがとうございました。
過去ログは私も確認していたのですが、バージョンが違っていた為、もしかしたら指定も違ったりするのかと拙い考えをしていました。
追加、修正については変わりなかったんですね。

教えていただいた記述どおりにやってみたところ、今度は確認画面(入力エラー画面)に飛ばないというスクリプトエラーが発生してしまいました。

<input type=hidden name="orderlist" value="ご希望の項目を選択して下さい">
に変更

cgiは

【修正箇所】
#-------------------------------------------------
# 入力チェック
#-------------------------------------------------
sub err_check {
local($err, $cp_flag, $flag, $cell, $tmp);

open(IN,"$tmp_err2") || &error("Open Error: $tmp_err2");
print "Content-type: text/html\n\n";
while (<IN>) {
if (/<!-- cell_begin -->/) {
$flag = 1;
}
if (/<!-- cell_end -->/) {
$flag = 0;

local($key, $bef, $tmp);
#foreach $key (@key) {
foreach $key (split(/ /,$in{'orderlist'}))
next if ($key eq "need");
next if ($key eq "subject");
(略)

# 必須入力項目
if ($key =~ /^_(.+)/) {
$key = $1;
push(@need,$key);
if ($val eq "") { $check++; push(@err,$key); }
}

$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val;
next if($key eq 'orderlist');
push(@key,$key);

(略)

としています。


何か他に設定ミスがあるのでしょうか。


記事No: 118
投稿日: 2007/04/05(Thu) 18:21:45
タイトルRe: 確認画面にいかない問題が
ID情報: tems
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> BAL様 早速のお返事ありがとうございました。
> 過去ログは私も確認していたのですが、バージョンが違っていた為、もしかしたら指定も違ったりするのかと拙い考えをしていました。
> 追加、修正については変わりなかったんですね。
>
> 教えていただいた記述どおりにやってみたところ、今度は確認画面(入力エラー画面)に飛ばないというスクリプトエラーが発生してしまいました。
>
> <input type=hidden name="orderlist" value="ご希望の項目を選択して下さい">
> に変更
>

valueを変更してはいけません。

<form action="./postmail.cgi" method="post">
<input type="hidden" name="orderlist" value="name email 性別 ページ メッセージ" />
<input type="hidden" name="need" value="email 性別 ページ" />
<input type="hidden" name="match" value="email email2" />
おなまえ<br /><input type="text" name="name" size="35" /><br />


記事No: 119
投稿日: 2007/04/05(Thu) 18:42:05
タイトルRe^2: 確認画面にいかない問題が
ID情報: deconeco
投稿者: でこねこ
URLhttp://x03.2000710.net/test/sr-sep/contact/inquiry.html

BAL様

しつこく申し訳ありませんが、下記の件もう少し詳しく教えてください。

> valueを変更してはいけません。
>
> <form action="./postmail.cgi" method="post">
> <input type="hidden" name="orderlist" value="name email 性別 ページ メッセージ" />
> <input type="hidden" name="need" value="email 性別 ページ" />
> <input type="hidden" name="match" value="email email2" />
> おなまえ<br /><input type="text" name="name" size="35" /><br />


今回指定する項目及び順番は以下のものです。
*が必須指定にしています。

ご希望の保険を選択して下さい(チェックボックス選択*)
お名前(テキスト入力*)
フリガナ(テキスト入力*)
性別
郵便番号(テキスト入力*)
ご住所(テキスト入力*)
電話番号
E-mail(テキスト入力*)
どのような家にお住まいですか
引渡し完了日、建築中・建築予定の方は引渡し予定日を教えて下さい
当社取扱保険をお知りになったきっかけ

テキストで必須の箇所はnameに"_"をつけています。

valueの値がもともと違うことになるのですが…


記事No: 120
投稿日: 2007/04/05(Thu) 18:57:05
タイトルRe^3: 確認画面にいかない問題が
ID情報: tems
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> BAL様
>
> しつこく申し訳ありませんが、下記の件もう少し詳しく教えてください。
>
> > valueを変更してはいけません。
> >
> > <form action="./postmail.cgi" method="post">
> > <input type="hidden" name="orderlist" value="name email 性別 ページ メッセージ" />
> > <input type="hidden" name="need" value="email 性別 ページ" />
> > <input type="hidden" name="match" value="email email2" />
> > おなまえ<br /><input type="text" name="name" size="35" /><br />
>
>
> 今回指定する項目及び順番は以下のものです。
> *が必須指定にしています。
>
> ご希望の保険を選択して下さい(チェックボックス選択*)
> お名前(テキスト入力*)
> フリガナ(テキスト入力*)
> 性別
> 郵便番号(テキスト入力*)
> ご住所(テキスト入力*)
> 電話番号
> E-mail(テキスト入力*)
> どのような家にお住まいですか
> 引渡し完了日、建築中・建築予定の方は引渡し予定日を教えて下さい
> 当社取扱保険をお知りになったきっかけ
>
> テキストで必須の箇所はnameに"_"をつけています。
>
> valueの値がもともと違うことになるのですが…

そもそも設置状況が見れないわけですからデフォルトのHTMLで説明になります。まずデフォルトのpostmail.htmlで動作確認をしてください。


記事No: 121
投稿日: 2007/04/05(Thu) 19:23:54
タイトルRe^4: 確認画面にいかない問題が
ID情報: deconeco
投稿者: でこねこ
URLhttp://x03.2000710.net/test/sr-sep/contact/inquiry.html

BAL様
確かにその通りでした。
再度こちらでも確認してみます。
いろいろありがとうございました。


[検索ページ]