スマホでの入力フォームが上手く反映されません

このQ&Aのポイント
  • スマホでの入力フォームが上手く反映されない問題について相談です。
  • CGI勉強中の初心者です。
  • 改造した部分のフォームタグだけが空欄で返ってくる問題です。
回答を見る
  • ベストアンサー

スマホでの入力フォームが上手く反映されません

いつも大変お世話になります。 cgi勉強中ですが初心者です。 どうかお力添えよろしくお願いいたします。 kent-webさんのパスワード自動発行型の会員登録フォームをアレンジして作っています。 http://www.kent-web.com/pwd/pwmgr.html もちろん「改造品を配布するホームページとしてリンクを貼るようにします。 一つだけ改善しません。 フォームの入力をPCですると全てうまくいきますが、スマホで入力していただくと返信用のメール内容に反映されず空欄で返ってきます。 最初のエンコードの宣言をutf-8にすると文字化けが起きました。 次にshift_jisにすると文字化けはしませんが、自分で改造した部分だけが空欄で帰ってくるようになりました。 なので、文字コードの間違いではなく、改造した(自分で足したフォームタグ部分のみ空欄)箇所がプログラムが間違っているような気がします。 改造前の「名前」「入力日時」「ホスト情報」「ログインID」「パスワード」はちゃんと変換されます。 こうなるともうお手上げで…うまくいきません。 どなたか見ていただけないでしょうか 必要だと思われる箇所のみ↓に記します。 ※受付フォームhtml の60行くらいまで↓ <?php echo '<?xml version="1.0" encoding="shift_jis"?>'; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=shift_jis"> <meta http-equiv="content-style-type" content="text/css"> <title>POPS会員登録フォーム</title> <style type="text/css"> <!-- body,th,td { background:#eee; color:#000; font-size:80%; } table.obi { width:400px; } table.obi th { padding:5px; background:#666; color:#fff; } table.form th,td { background:#fff; color:#000; padding:7px; } td.msg { color:green; font-size:75%; } table.chg td { padding:0; } --> </style> </head> <body> <form> <p style="text-align:center;"><input type="button" value="TOPに戻る" onclick=window.open("../index.html","_top")></p> </form> <div align="center"> <table class="obi"> <tr> <th>POPS研究会 新規メンバー登録</th> </tr> </table> <p> 以下のフォームにご入力ください。<br> 折り返しパスワードを送信します。 </p> <form action="./pwmgr.cgi" method="post"> <input type="hidden" name="mode" value="new_user"> <table cellspacing="0" border="1" class="form"> <tr> <th>お名前</th> <td><input type="text" name="name" size="30"></td> </tr> <tr> <th>フリガナ</th> <td><input size="20" type="text" name="フリガナ" /> 全角カタカナ</td> </tr> <tr> <th>電話番号(半角)</th> <td><input size="30" type="text" name="本人電話番号" />ご本人様(携帯など)</td> </tr> <tr> <th>性別</th> <td><input type="radio" name="性別" value="男" /> 男  <input type="radio" name="性別" value="女" /> 女 </td> </tr> <tr> <th>POPS会を知ったきっかけ</th> <td><input name="サイトを知ったきっかけ[]" type="checkbox" value="友人・知人" /> 友人・知人  <input name="サイトを知ったきっかけ[]" type="checkbox" value="検索エンジン" /> セミナー</td> </tr> <tr> <th>勤務先施設(所属歯科医院)</th> </tr> <tr>※受付フォームのhtml </head> <body> <form> <p style="text-align:center;"><input type="button" value="TOPに戻る" onclick=window.open("../index.html","_top")></p> </form> <div align="center"> <table class="obi"> <tr> <th>POPS研究会 新規メンバー登録</th> </tr> </table> <p> 以下のフォームにご入力ください。<br> 折り返しパスワードを送信します。 </p> <form action="./pwmgr.cgi" method="post"> <input type=初心者"hidden" name="mode" value="new_user"> <table cellspacing="0" border="1" class="form"> <tr> <th>お名前</th> <td><input type="text" name="name" size="30"></td> </tr> <tr> <th>フリガナ</th> <td><input size="20" type="text" name="フリガナ" /> 全角カタカナ</td> </tr> <tr> <th>電話番号(半角)</th> <td><input size="30" type="text" name="本人電話番号" />ご本人様(携帯など)</td> </tr> <tr> <th>性別</th> <td><input type="radio" name="性別" value="男" /> 男  <input type="radio" name="性別" value="女" /> 女 </td> </tr> <tr> <th>POPS会を知ったきっかけ</th> <td><input name="サイトを知ったきっかけ[]" type="checkbox" value="友人・知人" /> 友人・知人  <input name="サイトを知ったきっかけ[]" type="checkbox" value="検索エンジン" /> セミナー</td> </tr> <tr> <th>勤務先施設(所属歯科医院)</th> </tr> <tr> ※入力内容を返信させるtxt !name!様 ご登録をありがとうございます。 以下のとおりログインIDとパスワードを発行しました。 ※パスワードはご自分で自由に変更可能ですので、覚えやすいものに 変更しておくことができます。 ▼登録内容 登録日時 : !date! ホスト情報 : !host! お名前 : !name! E-mail : !email! フリガナ : !kana! 本人電話番号 : !tel! 性別 : !sex! サイトを知ったきっかけ : !trigger! 勤務先名称 : !medicalname! ▼ログイン情報 ログインID : !id! パスワード : !pw! ※パスワード発行用のdgiも必要でしょうか?

  • CGI
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

inputのname属性に日本語が使用されていますが、そこが問題ではないでしょうか? また、 >最初のエンコードの宣言をutf-8にすると文字化けが起きました。 >次にshift_jisにすると文字化けはしませんが、自分で改造した部分だけが空欄で帰ってくるようになりました。 とのことですが、 <meta http-equiv="content-type" content="text/html; charset=shift_jis"> のcharset属性は合わせて変更しましたか? PHPとHTMLで文字コードがそろっていないと文字化けが起こると思うのですが...

nami326
質問者

お礼

Proof4 様 早速の回答ありがとうございます!! >inputのname属性に日本語が使用されていますが、そこが問題ではないでしょうか? まさしくコレでした!! PCサイト用の入力フォームhtmlとスマホhtmlと二つ作っていまして… スマホ用だけトラブってたname属性が日本語のままでした… なんと、そそっかしい… ご指摘とおりローマ字に治してテストしたら、ちゃんと入力通り返ってきました!! 長いプログラムを丁寧に読んでいただき、ご返事いただき、ありがとうございます!! 以後気を付けて作成していきたいと思います!!

関連するQ&A

  • フォームで確認画面を表示させるにはどうすればいいのでしょうか?

    質問をご覧下さりありがとうございます。 <form action="18add.php" method="POST" name="form1"> <table> <tr> <th>番号(半角数字)</th> <td><input type="text" name="number" value=""></td> </tr> <tr> <th>名前</th> <td><input type="text" name="name" value=""></td> </tr> <tr> <td><input type="hidden" name="mode" value="add"></td> <td><input type="submit" name="submit" value="追加"></td> </tr> </table> </form> htmlでこんなフォームを作り、phpで $table_body = ""; if( isset( $_POST['mode'] ) ){ $mode = $_POST['mode']; $number = $_POST['number']; $name =$_POST['name']; } else{ $mode = ""; $number = ""; $name = ""; } if( $mode == "add" ){ $table_body .= "<tr>"; $table_body .= "<td>"; $table_body .= $number; $table_body .= "</td>"; $table_body .= "<td>"; $table_body .= mb_convert_encoding( $name, "SJIS", "EUC-JP" ); $table_body .= "</td>"; $table_body .= "</tr>"; } で一度入力された情報を確認する画面を作りたいのですが うまくいきません。 初心者なのでわかりやすく説明をつけてくださると大変助かります。

    • 締切済み
    • PHP
  • 2つのフォームに値を入れて計算

    2つのフォームを作り、その2つを計算したいのですがオブジェクトの指定の仕方がエラーが出てしまい(オブジェクトを指定してくださいと出ます)わかりません。 どうか教えてください。 ちなみにforなどは使わなくても大丈夫ですのでよろしくお願いします。 function kei() { var kei1 = 0; kei1=eval(document.A.a11.value) * eval(document.B.b21.value) ; document.C.c11.value = kei1; } <table border = 1> <form name="A"> <tr> <td> <input type = "text" size = 5 name = "a11"></input> </td> <td> <input type = "text" size = 5 name = "a12"></input> </td> <td> <input type = "text" size = 5 name = "a13"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "a21"></input> </td> <td> <input type = "text" size = 5 name = "a22"></input> </td> <td> <input type = "text" size = 5 name = "a23"></input> </td> </tr> </form> </table> <table boeder = 1> <tr> <input type = "button" onClick="kei()" value = "×"></input> </tr> </table> <table border = 1> <form name="B"> <tr> <td> <input type = "text" size = 5 name = "b21"></input> </td> <td> <input type = "text" size = 5 name = "b22"></input> </td> <td> <input type = "text" size = 5 name = "b23"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "b31"></input> </td> <td> <input type = "text" size = 5 name = "b32"></input> </td> <td> <input type = "text" size = 5 name = "b33"></input> </td> </tr> </form> </table> <table border = 1> <form name="C"> <tr> <td> <input type = "text" size = 5 name = "c11"></input> </td> <td> <input type = "text" size = 5 name = "c12"></input> </td> <td> <input type = "text" size = 5 name = "c13"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "c21"></input> </td> <td> <input type = "text" size = 5 name = "c22"></input> </td> <td> <input type = "text" size = 5 name = "c23"></input> </td> </tr> </form> </table>

  • 入力フォームに半角スペース以降が表示されない

    Perlでプログラムを組んでいます。 「山田 太郎」とデータを書き込みました。 それを$nameという変数に入れてPerlで出力し、 HTMLのフォームで表示しようとすると 「山田」までしか表示されません。 フォーム以外ではちゃんと「山田 太郎」と表示されます。 入力フォームはINPUTTYPE=text maxlength=20 です。 スクリプトは以下のような感じです。 HTML出力部分のみ。 # フォームからの情報を連想配列 %form に入れる &init_form($kanjicode) ・・・・ print <<"EOD"; Content-type: text/html <HTML> <HEAD> $contenttype <TITLE>$title</TITLE> </HEAD> <body> $tabletag <UL> <LI>$nameさんパスワードは大文字小文字の違いに注意してください。</LI> ↑「山田 太郎」とちゃんと表示される </UL> <FORM ACTION=$thisurl METHOD=$method> <TABLE> <TR> <TD>氏名</TD> ↓ここでは「山田」までしか表示されない <TD><INPUT type=text size=20 maxlength=20 name=$name value=$name></TD> </TR> <TR> <TD>パスワード</TD> <TD><INPUT type=password size=4 maxlength=4 name=pass value=$pass></TD> </TR> <TR> <TD COLSPAN=2> <INPUT type=hidden name=cmd value=new2> <INPUT type=submit value=登録する> </TD> </TR> </TABLE> </FORM> </BODY></HTML> EOD なにかヒントがありましたら教えてください。

    • ベストアンサー
    • Perl
  • メールフォームで必須項目の仕方

    メールフォームで必須項目を入力しないと送信できないようにするにはどうすればいいでしょうか? 現在は以下のとおりに書いてありますが、必須項目に書いてなくても送信できてしまいます。 <form method="post" action="CGI"> <h3>お問い合わせフォーム</h3> <p>*は必須項目です。</p> <table> <tbody> <tr> <th>お問い合わせ内容*</th> <td><textarea name="お問い合わせ内容" class="l" cols="40" rows="12"></textarea></td> </tr> <tr> <th>お名前(漢字)*</th> <td><input type="text" name="お名前(漢字)" class="m"></td> </tr> <tr> <th>お名前(フリガナ)*</th> <td><input type="text" name="お名前(フリガナ)" class="m"></td> </tr> <tr> <th>E-Mail*</th> <td><input type="text" name="E-mail" class="l"></td> </tr> <tr> <th>電話番号(半角)*</th> <td><input type="text" name="電話番号" class="l"></td> </tr> </tbody> </table> <input type="submit" value="  送信  " class="button"></form> また必須項目が未入力のときにエラーメッセージ(「お名前が未入力です。」など)を出したいのですがどのようにすればいいですか?

    • ベストアンサー
    • CGI
  • メールフォームについて

    この中にどのようなHTMLを書けば自分のPCにメールが届く ようになりますか?よろしくお願いします。 <h2>■MAIL FORM</h2> <div class="text"> <form><table><tr><td width="100" align=right> NAME</td><td align=right><input type="text" name="Name" size="34"></td></tr><tr><td width="100" align=right> MAIL</td><td align=right><input type="text" name="Mail" size="34"></td></tr></table> <TEXTAREA NAME="Comments" ROWS="8" COLS="39" value="comments"></TEXTAREA> <br> <table><tr><td width="100" align=right> </td> </tr><tr> <td width="100" align=right> URL</td><td><input type="text" name="URL" value="http://" size="34"></td></tr><tr><td></td><td align="right"> <INPUT TYPE="reset" VALUE=" Reset "> <INPUT TYPE="submit" VALUE=" Send "></FORM> </td></tr></table><br></div>

    • ベストアンサー
    • HTML
  • フォームに入力したテキストを別フレームのフォームに反映させるには?

    上と下でフレーム分けしたページで、以下のような構成です。 上段フレームのフォームに入力した内容を、フォームの右側に設置した変更ボタンを押すことで、 下段フレームのプルダウンメニューとテキストフィールドに上記の構成のような感じで反映させたいのです。 社員番号の反映までのスクリプトを書いたところで、わからなくなってしまいました。 名前・部署・営業所・年齢も反映させるにはどうすればいいでしょうか? 画面イメージ----------------------------------------------------------- 社員番号 名前    部署  営業所 年齢 [I00001] [山田太郎] [営業] [東京] [25] 【変更ボタン】 [I00002] [鈴木次郎] [販売] [大阪] [30] 【変更ボタン】 =======================================================================  社員番号   名前      部署    営業所  年齢 《I00001▼》 《山田太郎▼》 《営業▼》 《東京▼》 [25] ------------------------------------------------------------------------ [XXXXX]がテキストフィールド、 《XXXXX▼》がselectのプルダウンメニューでいくつか選べるようになっています。 ★上段(ue_frame.html)★ <html> <head> <title>社員情報</title> <script language="JavaScript"><!-- function sendData(id) { syainbangou_label = id+"_syainbangou"; syainbangou_value = document.getElementsByTagName(syainbangou_label).value; //alert(parent.ue_frame.document.entry.syainbangou.options.length); for(count=0; count<parent.ue_frame.document.entry.syainbangou.options.length;count++){ if(id == parent.ue_frame.document.entry.syainbangou.options[count].value) { parent.ue_frame.document.entry.syainbangou.options[id].selected=true; } } } // --> </script> </head> <body> <form> <table> <tr> <td>社員番号</td><td>名前</td><td>部署</td><td>営業所</td><td>年齢</td><td></td><td></td><td></td> </tr> <tr> <td><input type="text" name="1_syainbangou" value="I00001"></td> <td><input type="text" name="1_syain_namae" value="山田太郎"></td> <td><input type="text" name="1_busyo" value="営業"></td> <td><input type="text" name="1_eigyousyo" value="東京"></td> <td><input type="text" name="1_age" value="25"></td> <td></td> <td><input type="button" value="変更" name="1_update" onClick="sendData(1)"></td> </tr> <tr> <td><input type="text" name="2_syainbangou" value="I00002"></td> <td><input type="text" name="2_syain_namae" value="鈴木次郎"></td> <td><input type="text" name="2_busyo" value="販売"></td> <td><input type="text" name="2_eigyousyo" value="大阪"></td> <td><input type="text" name="2_age" value="30"></td> <td></td> <td><input type="button" value="変更" name="2_update" onClick="sendData(2)"></td> </tr> </table> </body> </html> ★下段(sita_frame.html)★ <html> <head> <title>社員情報登録</title> <script language="JavaScript"><!-- // --></script> </head> <body> <form name="entry"> <table border="0"> <tr> <td>社員番号</td><td>名前</td><td>部署</td><td>営業所</td><td>年齢</td><td></td> </tr> <tr> <td> <select id="syainbangou"> <option>社員番号を選択 <option value=1>1.I00001 <option value=2>2.I00002 </select></td> <td> <select> <option>名前を選択 <option>1.山田太郎 <option>2.鈴木次郎 </select></td> <td> <select> <option>部署を選択 <option>1.営業 <option>2.販売 </select></td> <td><select> <option>営業所を選択 <option>1.東京 <option>2.大阪 </select></td> <td><input type="text" name="age" value="0"></td> </tr> <table> </form> </body> </html>

  • フォーム htmlで項目をセット

    下記フォームのページがあります。 http://hogehoge.com/form.html <form action="#" method="post"> <table border="1"> <tr> <td>名前</td> <td><input type="text" name="name"></td> <td colspan="2" align="center"> <input type="submit" value="入力"> </td> </tr> </table> </form> </body> </html> このフォームに http://hogehoge.com/form.html?name=xxx でアクセスすると、 nameの項目に xxxが入力されて表示できるようにアクセスする事は可能なのでしょうか? 恐れ入りますが、ご教授お願い致します。

    • ベストアンサー
    • HTML
  • ボタンクリックでフォーカス移動

    JavaScript超ビギナーなので方法がよくわかりません。 フォームにテキストボックス(配列)4個あり ボタンを押すたびに未記入のテキストボックスにカーソルを移動したいのですが。どのようにしたらいいでしょうか。 <form name="form1" method="post"> <table width="200" border="1"> <tr><td ><input type="submit" name="Submit" value="送信"></td></tr> <tr><td ><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> </table> </form>

  • ラジオボタンでの表示の切替方法

    2つのラジオボタンの切替によって、表示の切替を行いたいです。 例えば、Aを選択すると(1)の入力フォームが表示され、Bを選択すると(2)が表示したいです。初期表示はAが選択された時と同じ内容となります。 <table align="center" border="0" cellpadding="0" cellspacing="0"> <tr><td><form name="Quick1"> <tr><td>選択</td> <td> <input type="radio" name="A" value="1" checked>A  <input type="radio" name="B" value="2">B  </td></tr> <tr> <td>(1)</td> <td> <input type="text" size="6" maxlength="5" name="text1" value="">- <input type="text" size="6" maxlength="5" name="text2" value="">- <input type="text" size="6" maxlength="5" name="text3" value=""> </td></tr> <tr> <td>(2)</td> <td> <input type="text" name="text7" size="43" value=""> </td></tr> </table></form></td></tr></table> すみませんが、よろしくお願い致します。

  • PHPのお問い合わせフォームについて

    こんにちは、セレクトボックスの選択部分を変更するとフォームの内容が変わるというフォームを作っているんですが色々試しても何がどうおかしいのかわからないので質問させていただきます。 PHP初心者で触り始めて間もないのでわかりやすく教えてもらえると嬉しいです。 多分色々とおかしいことになってると思いますがよろしくお願いいたします。 【index.html】 <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> fieldset{ border: none; } </style> <script type="text/javascript"> function setForm(ex) { var target = ex.value; var group = ex.form.getElementsByTagName("FIELDSET"); var i=0, fs; while(fs=group[i++]) fs.style.display = fs.id == target?"block":"none"; } </script> </head> <body> <form action="form.php" method="post"> <table> <tr> <td>用件</td> <td> <select name="select1" onchange="setForm(this)"> <option value="">選択してください</option> <option value="A">ご質問</option> <option value="B">資料請求</option> <option value="A">その他</option> </select></td> </tr> </table> <fieldset id="A"> <table> <tr> <td>お名前</td> <td><input type="text" name="name" value=""></td> </tr> <tr> <td>Mail</td> <td><input type="text" name="mail" value=""></td> </tr> <tr> <td>サイトを知ったきっかけ</td> <td><input type="checkbox" name="chance[0]" value="friend">知り合い <input type="checkbox" name="chance[1]" value="serch">検索エンジン<td> </tr> <tr> <td>ご質問内容</td> <td><textarea name="message" cols="60" rows="5"></textarea></td> </tr> </table> </fieldset> <fieldset id="B"> <table> <tr> <td>お名前</td> <td><input type="text" name="name" value=""></td> </tr> <tr> <td>Mail</td> <td><input type="text" name="mail" value=""></td> </tr> <tr> <td>性別</td> <td><input type="radio" name="gender" value="man">男 <input type="radio" name="gender" vakue="woman">女</td> </tr> <tr> <td>住所</td> <td><input type="text" name="address" value=""></td> </tr> </table> </fieldset> <input type="submit" value="送信する" /> </form> </body> </html> </html> 【form.php】 <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php mb_language("japanese"); mb_internal_encoding("utf-8"); if(!empty($_POST['mail'])){ $to=$_POST['mail']; $name=$_POST['name']; $chance=$_POST['chance']; $message=$_POST['message']; $gender=$_POST['gender']; $address=$_POST['address']; $form=mb_encode_mimeheader(mb_convert_encoding("自分の名前","JIS","UTF-8"))."<aaa@aaa.com>"; $success=mb_send_mail($to,"名前:".$name."サイトを知ったきっかけ:".$chance."お問い合せ内容:".$messagge."性別:".$gender."住所:".$address,"from:".$from); } ?> <?php if ($success) { print('送信しました。'); } else { print('送信に失敗しました。'); } ?> </body> </html> よろしくお願いします!!!!

    • 締切済み
    • PHP