旅行好きのおしりトラブル対策グッズ3選

以前別の方が作ったphp,htmlをアレンジして予約フォームを作っています。
そこで以前「ご予約される店舗」という項目だったものを「ご予約されるコース」に変更したところ
チェックをいれているのに送信内容確認画面で「ご予約されるコース」が選択されていません
とメッセージがでます。
初心者でどう質問していいかわからんくて質問に不足があるかもしれませんが、
困っています。どうか力になってください。

【html側】
<table><tr>
<td><img src="../img/121.gif" width="242" height="26" alt="ご予約されるコース" /></td>

<td>
<SELECT name="ご予約されるコース">

<OPTION value="">ご選択ください</OPTION>
<OPTION value="A">A</OPTION>
<OPTION value="B">B</OPTION>
<OPTION value="C">C</OPTION>
</SELECT>
</td>
</tr>


【php側】
// 必須入力項目を設定する(する=1, しない=0)
$esse = 1;

// 必須入力項目(入力フォームで指定したname)
$eles = array('ご予約されるコース','年(第一希望)','月(第一希望)','日(第一希望)','年(第二希望)','月(第二希望)','日(第二希望)','お名前','フリガナ','性別','お電話番号','携帯番号','ご住所','email');


//--------------------------------------------------------------------
// 以上で基本的な設定は終了です。
// 以下の変更は自己責任でお願いします。(行数はデフォルト時)
// 未入力画面のレイアウト → 88行目周辺
// 送信メールのレイアウト → 103行目周辺
// 差出人への送信確認メールのレイアウト → 128行目周辺
// 送信確認画面のレイアウト → 163行目周辺
// 送信終了画面のレイアウト → 194行目周辺
// 送信確認画面や終了画面のヘッダとフッタ → 209行目周辺
//--------------------------------------------------------------------

$sendm = 0;
foreach($_POST as $key=>$var) {
if($var == "eweb_submit") $sendm = 1;
}

// 文字の置き換え
$string_from = "\";
$string_to = "ー";

// 未入力項目のチェック
if($esse == 1) {
$flag = 0;
$length = count($eles) - 1;
foreach($_POST as $key=>$var) {
$key = strtr($key, $string_from, $string_to);
if($var == "eweb_submit") ;
else {
for($i=0; $i<=$length; $i++) {
if($key == $eles[$i] && empty($var)) {
$errm .= "<FONT color=#ff0000>「".$key."」は必須入力項目です。</FONT><BR>\n";
$flag = 1;
}
}
}
}
foreach($_POST as $key=>$var) {
$key = strtr($key, $string_from, $string_to);
for($i=0; $i<=$length; $i++) {
if($key == $eles[$i]) {
$eles[$i] = "eweb_ok";
}
}
}
for($i=0; $i<=$length; $i++) {
if($eles[$i] != "eweb_ok") {
$errm .= "<FONT color=#ff0000>「".$eles[$i]."」が未選択です。</FONT><BR>\n";
$eles[$i] = "eweb_ok";
$flag = 1;
}
}
if($flag == 1){
htmlHeader();
?>

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

A 回答 (2件)

とりあえず、思いつきで書いていますので、アテにせずに読んでください。



とりあえず、これ↓に対して一言。

<SELECT name="ご予約されるコース">

name に日本語を使うと言う発想はありませんでした。

起きている状態から判断するに、↑の <SELECT>の name="ご予約されるコース" と、↓の 配列の中の"ご予約されるコース"が 別のものと判断されてるんじゃないかと思ったり。

// 必須入力項目(入力フォームで指定したname)
$eles = array('ご予約されるコース','年(第一希望)','月(第一希望)','日(第一希望)','年(第二希望)','月(第二希望)','日(第二希望)','お名前','フリガナ','性別','お電話番号','携帯番号','ご住所','email');

試しに、この二つを 日本語でなく order とかに書き換えてみて どうなるか確認してみてください。

あと気になってるのは文字コード。
SJISで書いているとしたら、「予約」の「予」って確かバグ文字。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
指摘いただいた箇所を英語にかえたところ認識するようになりました。
アドヴァイスすごく助かりました

お礼日時:2010/12/24 00:06

「予」もそうだがこの場合は「ー」が原因。


既出だが、確実で手っ取り早いのは name にマルチバイト文字を使うのはやめたほうがいい。

# XML の場合要素名及び属性名の大文字小文字を区別する。また XHTML では要素名は小文字で定義されているため、大文字の要素名はありえない。
# その他、、まぁいいか
    • good
    • 0
この回答へのお礼

初心者なのでご返答非常に助かりました。
まだまだ問題があるかと思いますが的確な指摘ありがとうございます!

お礼日時:2010/12/24 00:00

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


人気Q&Aランキング