フォームに値を自動入力する方法

このQ&Aのポイント
  • 商品名や商品コードを自動入力するメールフォームの作成方法を教えてください。
  • GET送信やクエリーを使用して、商品コードが自動入力された状態でメールフォームを開く方法を知りたいです。
  • メールフォームのテキストボックスに商品コードを自動的に入力する方法について教えてください。
回答を見る
  • ベストアンサー

フォームのテキストボックスに値を自動入力

こんにちは。メールフォームについて質問いたします。 現在問い合わせのメールフォームを作っています。 フォーム内に、商品名や商品コードを入力していただくのは手間なので、 たとえば商品コード「A123」のページから「問い合わせ」ボタンをクリックして"mailform.html"にリンクさせると <input type="text" name="code">の部分にA123が入力された状態になって開いてほしいのです。 GET送信だとか、クエリーだとか調べたらいろいろと出てきたのですが 具体的にどうすればいいのかわかりません。 どなたかご存知の方がいらっしゃいましたら、教えてくださいませ。

  • PHP
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
回答No.2

HTMLのみで実現したい場合はJavaScriptを使う必要があると思います。 サンプルを作ってみました。 <html> <head> <script> function setValue() { var value = location.href.split("#", 2)[1]; if (value) { document.form.code.value = value; } } </script> </head> <body onload="setValue();"> <form name="form"> <input type="text" name="code"> <input type="submit"> </form> </body> </html> このサンプルでは"mailform.html#A123"のような感じで呼ぶと、テキストボックスにシャープの後の文字列を入れてくれます。 それからNO1で答えた事柄にも当てはまりますが、何らかの入力をそのまま表示すると、クロスサイトスクリプティング等の脆弱性になる可能性がありますのでお気をつけ下さい。 そういう意味ではNO1での回答は不適切で、実際は <input type="text" name="code" value="<?= htmlentities($_REQUEST['code'], ENT_QUOTES) ?>"> 等とする必要があります。

dryfig
質問者

お礼

重ね重ねご丁寧なご返答ありがとうございます。 早速作っていただいたサンプルをHTMLに追記して試してみました。 望んでいたとおりに動作してくれたので感激デス♪ 一週間も悩んでいたのに、数時間で解決するとは…。 matchasoft様、本当にありがとうございましたっ!!

その他の回答 (1)

回答No.1

PHPで作られているのならメールフォームをPHPにしてしまえば可能です。 例えば商品コード「A123」のページへの問い合わせリンクを mailform.php?code=A123 とし、mailform.phpを下のようなスクリプトにします。 <input type="text" name="code" value="<?= $_REQUEST['code'] ?>">

dryfig
質問者

お礼

早速の回答ありがとうございました。 メール送信するためのスクリプトはPHPなのですが フォーム自体はHTMLで作成しています。 PHPの知識がないので、フォームをPHPにするにはどうしたらいいのかわかりませんが、何とか調べてやってみます。 ありがとうありがとうございます。

関連するQ&A

  • フォームに入力後、別のフォームに値を表示

    すみません。教えて頂けないでしょうか?(初心者です) <input type="text" name="a" id="aaa" size=20>  ↓ <input type="text" name="b" id="bbb" size=20>  ↓ <input type="text" name="c" id="ccc" size=20>  ↓ このような感じで作成し、aとbのフォームに値が何か 入力されたら自動的に、例えばaとbの値を足してcのフォームに その結果を表示する様にしたいのですが、記述の仕方が なかなか見つけられません。

    • 締切済み
    • PHP
  • フォームに入力された値を計算する方法

    私はまったくの初心者なのですがどなたか教えて下さい。 ●A,B,Cという3つの入力フォームがあるとします。 Aのフォームに入力された数字は「A÷20」という値に、 Bのフォームに入力された数字はそのまま、 Cのフォームに入力された数字は「C×10」という値に変更して、 (A+C)÷B×30という計算を行なって、その答えを Dのフォームへ表示するというシステムをcgiやphpで作りたいのです。 あれこれと試行錯誤しながら、javascriptでなんとか出来たんですが… どなたか教えて頂けませんか? function keiri() { a = document.takeko.case.value; a = eval(a); a = a / 20 b = document.takeko.time.value; b = eval(b); c = document.takeko.days.value; c = eval(c); c = c * 10 ans = (a + c) / c * 30; document.spec.result.value = ans; } <form name="takeko"> <input name="case" type="text" size="12"> <input name="time" type="text" size="12"> <input name="days" type="text" size="12"> <input name="button" type="button" onClick="keiri()" value="CLICK"> <input name="result" type="text" size="12"> <br></form>

    • 締切済み
    • PHP
  • 指定した複数のデータを別ページフォームに入れる

    非常に古い回答を参考にしています。2007/11/08 19:08 steel_grayさんが回答されている項目 希望する事は複数 商品一覧のA.htmlのページがあり それをお問合せフオームB.htmlのテキストボックスに投げ入れる スクリプトを希望 A.html <head> </head/> <body> <script type="text/javascript"> function sendQuery(uri,querys){ var query = new Array; for(var x in querys) { query.push(x+'='+encodeURI(querys[x])); } location.href=uri+'?'+query.join('&'); } </script> <input type="button" value="問合せ" onclick="sendQuery('問い合わせページのURL',{'CODE':'ABC001','NAME':'商品名'})"> </body> --------------------------------------- ・問い合わせページ ・・スクリプト(bodyのonloadで呼び出す) B.html <head> </head> <body> <script type="text/javascript"> function setQuery(){ var querys = location.search.replace(/^\?/,'').split(/&/); for(var i=0;querys[i];i++){ var query = querys[i].split('='); document.getElementById(query[0]).value = decodeURI(query[1]); } } </script> <!--値を受取るフォーム部品 --> <input type="hidden" id="CODE"> <input type="hidden" id="NAME"> </body> それぞれCODEとNAMEのテキストボックスにデータが入りません 希望は<input type="hidden" id="CODE">にCODEのデータが入る <input type="hidden" id="NAME">にNAMEのデータが入る スクリプトを希望します。 何卒ご回答よろしくおねがいします。

  • テキスト・セレクトフォームにて何も入力されていない状態ではフォームの色を変えるためには

     Rubyを使用して掲示板のシステムを作成しています。 必須項目 <input type="text" name="textfield"><br> 任意項目 <input type="text" name="textfield2"><br> 必須項目 <input type="text" name="textfield3"><br> 必須項目 <textarea name="textarea"></textarea><br> 必須項目 <select name="select"></select> と複数のテキストフォームとセレクトフォームがあり,その一部が必須項目です。そこで必須項目と分かるようにフォームの入力部分を赤く塗り,何か文字が入力されたら(何か選ばれたら),元の白の状態にしたいと考えています。  このようなことは実際可能なので使用か。ご教授お願いします。

    • ベストアンサー
    • HTML
  • フォームから値を受け取る方法について

    例えば <form method="post" name="frm" action="mail.php">名前<input type="text" name="namae"><br> 住所<input type="text" name="jyuusyo"><br> 電話番号<input type="text" name="denwa"><br> 職業<input type="text" name="syokugyou"><br> 年齢<input type="text" name="nenrei"><br> <input type="submit" value="送信"><br> </form> というフォームがあるとして、それをmail.phpで 名前を取得する場合$_POST['namae']と書く以外で フォームの1番目の値を取得するというような書き方はあるのでしょうか? frmのパラメータの数(上記の場合5コ)というのは取得出来るのでしょうか? ご存知の方教えてください。お願いします。

    • ベストアンサー
    • PHP
  • フォームのテキストボックス内の値の制御

    以下の[1234568]という、半角数字8桁の初期値がありますが、 このテキストボックスの ・常に上4桁(1234)だけをReadOnlyにし、選択/削除/書き換え一切不可に ・フォーカスが置かれた瞬間、下四桁の数字だけを、自動で選択状態にする なんてことはできますか? 全部をReadOnlyにしたりはできるのですが・・・よろしくお願い致します。 <html> <head></head> <body> <form method="post" action="list.php" target="list" id="query" name="query"> <input value="12345678" type="text" name="numberform" onblur="Check1();"> <input type="submit" name="exec" value="検索"> </form> </body> </html>

  • フォームの値をリンクで渡す方法

    ふつうはフォームで <input type = "text"> <input type = "hidden" name ="test1"> <input type = "hidden" name ="test2"> <input type = "hidden" name ="test3"> <input type = "hidden" name ="test2"> とやっていけばいくつものフォームの値を渡せますね。 今回はリンクにフォームの値を入れたいのです。 a href ="http://sig.com/win.cgi?text1=$text1&text2=$text2" test1はリンクの値。 text2がテキストボックスのフォームの値です。 どうやってtext2の値を上のハイパーリンクに入れられるでしょうか? やはりJAVASCRIPTを使う必要があるでしょうか? (他の質問で解決済み) フォームとリンクの値を同時にCGIに渡す方法を教えてください。 自分としては1つ1つ値を渡していくしかないか、と考えました。

    • ベストアンサー
    • Perl
  • 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>

  • $_REQUESTの値を保存する方法

    データを更新する画面を作成しています。 HTML・PHP・MYSQLを使用。 1本目のPHPはコードを入力し、 フォーム内のSUBMITボタンで、次のPHPを呼び出します。 ================================================ a.php <?php 入力チェック エラーがないとき header(省略. "/b.php?CODE=" . ($_REQUEST["CODE"])); exit(); ?> <form action="a.php" method="post"> <input type="text" name="code"> <input type="submit" name="submit" value="登録"> </form> とあって、入力チェックでエラーがなければ 別のPHPに入力したコードをパラメーターとして 持って移動。 ================================================= b.php <?php $code = $_REQUEST[CODE]; このフォームのエラーチェック エラーがないとき header(省略. "/a.php); exit(); ?> <form action="b.php" method="post"> <table> <tr><td><?php echo($code); ?></td></tr> <tr><td><input type="text"></td></tr> </table> <input type="submit" name="submit" value="更新"> </form> 受け取ったコードに対する情報を入力し、 更新ボタンを押す⇒エラーがなければデータを更新、もとの画面に。 最初にb.phpを表示したときは、$codeに値が入っていて、画面にコードが表示されますが、 更新ボタンを押して、画面にエラーがあるとき、 エラーチェックをして画面表示をすると、$codeの値が消えてしまいます。 この値を残す方法を探しています。 $_REQUESTの値を残す、もしくは、他のプログラムから パラメーターを取得し使用する方法を どなたか、教えてください!

    • ベストアンサー
    • PHP
  • フォームを作成 入力するところの大きさがおかしい

    ID・パスワード入力フォームを作成したのですが、 <input type=text name=ID size=20 value=""> <input type=password name=password size=20 value="" > 大きさが異なります。 どうしてなのか、理由を知りたく思います。 お知恵をお貸し下さい。

    • ベストアンサー
    • HTML

専門家に質問してみよう