PHP

---- tel.php ---
<form action="tel.php" method="post">
岡田さんの連絡先:<input type="text" name="telnumber">
連絡先を追加する:<select name="tuika"><option value="tel">電話</option><option value="mail">メール</option></select><input type="submit" name="submit" value="追加">
<input type="submit" value="終了">
</form>
----
で、プロセス「連絡先を追加する」を行った際、ユーザーの選択に合わせて既にある「岡田さんの連絡先」の後にHTML

岡田さんの連絡先2:<input type="text" name="選択による">

を追加し表示したいです。

---以下のような形です
岡田さんの連絡先:<input type="text" name="telnumver" value="$_POST['telnumber']">
岡田さんの連絡先2:<input type="text" name="telnumber2">
---

また、追加時に既に入力されていた文字などはそのまま同じ場所に受け継ぐような形にしたいのですが、方法が分かりません。
簡単なPHPサンプルをお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2008/12/17 10:01:13
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:al001 No.1

回答回数14ベストアンサー獲得回数1

何個でも連絡先を追加出来る物をお望みなのか判断しかねたのですが、取りあえず条件を満たす物を。

<form action="tel.php" method="post">
岡田さんの連絡先:<input type="text" name="telnumber" value="<?php echo($_POST["telnumber"]) ?>">
<?php
switch ($_POST["tuika"]) {
  case "tel":
    echo '岡田さんの連絡先2:<input type="text" name="telnumber2">';
    break;
  case "mail":
    echo '岡田さんの連絡先2:<input type="text" name="mailaddress">';
    break;
  default:
    echo '連絡先を追加する:<select name="tuika"><option value="tel">電話</option><option value="mail">メール</option></select><input type="submit" name="submit" value="追加">';
}
?>
<input type="submit" value="終了">
</form>
id:esecua

すいません、説明不足でした。

詳しい詳細は http://d.hatena.ne.jp/esecua/20081213 です。

2008/12/14 06:06:55
  • id:kn1967
    わざわざサーバに一旦返してフォームを作り直すの?
    クライアントサイド(javascriptなど)で
    連絡先2のvisibleを切り替えりゃ済む話じゃね?
  • id:esecua
    サーバで処理したいのです!
    お願いします。
  • id:kn1967
    セッション変数使うなり、データベースを別途用意するなり・・・
    回答も行っているし、そもそもweb製作を生業としている貴殿なので
    このような基本的な部分で困っている訳では無いですよね・・・
    だから、どこが解らないのかが判らず回答に窮す。
  • id:esecua
    http://d.hatena.ne.jp/esecua/20081213 に記載いたしました
  • id:kn1967
    「確認の為」というのは目的を示すものであって
    具体的にどうしたいのか、また、どこがどのように判らないのかが
    残念ながら伝わってきません。

    「確認の為」という目的を達成するために
    今現在どのように作成(あるいは構想)していて
    どの部分で躓いているのかが表されていませんので
    明示しないと的確な回答は得られませんよ。

    単純に項目を増やすだけであれば
    既にオープンされている回答1/を用いればよろしいでしょうけど
    (連絡先3、4・・・の追加に対応するためには改造が必要)
    「確認の為」という要件を満たすためには
    そのほかのアクションも付随するのではありませんか?
  • id:esecua
    おはよう御座います。

    http://d.hatena.ne.jp/esecua/20081213 に記載いたしましたのでご確認下さい。
  • id:kn1967
    コメント考えながら打っている間に追加しておられたのね・・・。

    なるほど・・・サーバで確認する為ではなくて
    項目自体を増減させたり、順序を入れ替えたりするために必要な措置なのね。

    だとすれば、項目と順序を記憶しておくシステムがサーバ側に必要だけど
    何らかのデータベースを使うつもりなのかな?
    (テキストファイルでも出来るけど柔軟性に問題がある)

    データベースなりテキストファイルなりに項目と順序を記憶させておけば
    それを呼び出して、POSTされてきたデータを含んだ形で整形するだけだし
    貴殿には難しくないもののはずだけど?
  • id:al001
    例えば以下のようなフォーム構造の情報をセッションなり、hiddenフィールドなりで引き回せば出来ますね。
    't,a,m,ctほげほげ'
    ,区切りでtは電話番号、aは住所、mはメモフィールド。
    cはカスタマイズフィールドを表し、cの次がiだとinput、tだとtextarea、そこから先が項目名。
    要はフォーム構造をプログラムが知ることが出来れば可能かと存じます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません