10代と話して驚いたこと

こんにちは。メールフォームについて質問いたします。

現在問い合わせのメールフォームを作っています。
フォーム内に、商品名や商品コードを入力していただくのは手間なので、
たとえば商品コード「A123」のページから「問い合わせ」ボタンをクリックして"mailform.html"にリンクさせると
<input type="text" name="code">の部分にA123が入力された状態になって開いてほしいのです。

GET送信だとか、クエリーだとか調べたらいろいろと出てきたのですが
具体的にどうすればいいのかわかりません。
どなたかご存知の方がいらっしゃいましたら、教えてくださいませ。

A 回答 (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) ?>">
等とする必要があります。
    • good
    • 0
この回答へのお礼

重ね重ねご丁寧なご返答ありがとうございます。

早速作っていただいたサンプルをHTMLに追記して試してみました。
望んでいたとおりに動作してくれたので感激デス♪

一週間も悩んでいたのに、数時間で解決するとは…。
matchasoft様、本当にありがとうございましたっ!!

お礼日時:2006/11/13 15:48

PHPで作られているのならメールフォームをPHPにしてしまえば可能です。


例えば商品コード「A123」のページへの問い合わせリンクを
mailform.php?code=A123
とし、mailform.phpを下のようなスクリプトにします。
<input type="text" name="code" value="<?= $_REQUEST['code'] ?>">
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
メール送信するためのスクリプトはPHPなのですが
フォーム自体はHTMLで作成しています。

PHPの知識がないので、フォームをPHPにするにはどうしたらいいのかわかりませんが、何とか調べてやってみます。
ありがとうありがとうございます。

お礼日時:2006/11/13 15:00

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


おすすめ情報