電子書籍の厳選無料作品が豊富!

フォーム送信の入力欄は2つあり、
入力したテキストを元にサーバへ送信データを2つ送る場合、
どのようなフォームにすればいいのでしょうか?

例えば、
入力欄1に「亀有町」を入力し、
入力欄2に「葛飾区」を入力すると、
送信データAは「亀有町」
送信データBは「東京都葛飾区亀有町」という具合に送信したいです。

プログラムはこのような感じで、
<form method="post" action="">
<input type="hidden" name="Tokyo" value="東京都">
町名<input type="text" name="Machi";><br />
区名<input type="text" name="Ku";><br />
<button type="submit">送信</button>
</form>

送信データは mati と 東京都KuMachi の2つです。


サーバ側でデータを処理するのではなく、送信時に処理したいのですが、
どのようなプログラムにすればよろしいのでしょうか?

もし、送信時では不可能でしたら、PHPサーバ側ではどのようなプログラムになるのでしょうか?

A 回答 (1件)

こんにちは。



JavaScriptを利用して実現できますがサーバ側で出来るのであればサーバ側で行うほうが個人的には良いと思います。

■送信前に加工する場合
====HTML
<form method="post" action="send.php" onsubmit="send(this);">
<input type="hidden" name="Tokyo" value="東京都" />
<input type="hidden" name="MachiKu" value="" />
町名<input type="text" name="Machi" /><br />
区名<input type="text" name="Ku" /><br />
<button type="submit">送信</button>
</form>
====JS
function send ( formObj ) {
var str = formObj.Tokyo.value + formObj.Ku.value + formObj.Machi.value;
formObj.MachiKu.value = str;
}

こうすることでサーバ側ではパラメータ名MachiKuを取得すれば 東京都+区名+町名 の文字列が取得できます。


■サーバ側で処理する場合
$str = $_POST['Tokyo'] . $_POST['Ku'] . $_POST['Machi'];
とすれば$strに連結されたものが生成されます。
    • good
    • 0
この回答へのお礼

LancerVIIさま。教えて頂きまして、ありがとうございます。
お陰様で解決しました。

送信前に加工する方法と、サーバ側で処理する方法を行なった結果、
LancerVIIさまがおっしゃる通り、サーバ側で処理する方法が一番良く解決できました。



解決した内容は、

====HTML
<form method="post" action="">
<input type="text" name="b" /><br />
<input type="text" name="d" /><br />
<button type="submit">送信</button>
</form>

====サーバ
$bunshou = '単語A' . $_POST['b'] . '単語C' . $_POST['d'];

====処理結果
単語Ab単語Cd ( 単語A+b+単語C+d )


送信前に加工する方法だと、見せたくない「単語A」と「単語C」がブラウザのソースで見えてしまいますが、サーバ側で処理する方法だと見えないので良かったです。


2日間、やり方が分からずトライ&エラーの連続で路頭に迷った状態でしたが、
解決できて、LancerVIIさまに感謝しております。

また、プログラミングの醍醐味を知り、作るのも楽しくなってきました。
本当にありがとうございました。

お礼日時:2012/08/08 15:48

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