• ベストアンサー

フォームから値を受け取る方法について

例えば <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コ)というのは取得出来るのでしょうか? ご存知の方教えてください。お願いします。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>名前を取得する場合$_POST['namae']と書く以外で foreachでまわしてみては? foreach ($_POST as $key => $val){ $data=&datas[]; $data["key"]=$key; $data["val"]=$val; } などとして順番をつけなおしてみるとか・・・。 >frmのパラメータの数 これは微妙な考え方で、パラメータの数もわからないものを 有効なデータとして受け取るのはいかがなものかと。 まぁ特殊なことを考えていると言うなら count($_POST)などで数えられるかもしれませんが。

yamadachan
質問者

お礼

回答ありがとうございます。 count($_POST)で数えれました^^ あともう1つ聞きたいのですが、 インプットタイプを取得する事は出来るのでしょうか? テキスト、ラジオボタン、チェックボックスを判別できるといいのですが・・・

その他の回答 (3)

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.4

type="***" というのはブラウザ上でどのように描画すればいいのかって情報であり、POSTだろーがGETだろーがREQUESTだろーが取得できません、PHPに限らず どんな言語でも無理です POSTの数も、最初はまともに動いていたとしても、HTML側をちょっと変えただけで数が変わる可能性があります 数を数えて5個ならば・・・ というような処理をしている部分で本来の数と変わってしまうので正常な動きができなくなります 同じように 一番最初の値が○○ならば・・・ という処理の部分で正常に動かなくなりますよ これは潜在的なバグとなり、自分自身もどこで動かなくなっているのか探すのに時間かかります HTML側に依存したつくりともいえますので、そのような設計をすべきではありません

yamadachan
質問者

補足

回答ありがとうございます。 javascriptだと確か出来たのでPHPでも出来るのかなって思ってました^^; 色々と教えていただきありがとうございました^^

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

#1です >インプットタイプを取得する事は出来るのでしょうか? >テキスト、ラジオボタン、チェックボックスを判別できるといいのですが・・・ 判別する意味がまったくないので、そのような作りにはなっていません。 完全に無理です。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 んっと…まず「フォームの1番目の値を取得」は、理論的に「無理」です(たまたま取れる環境があっても、それがいつも必ず、とは限らないので)。 また、count($_POST)も、パラメタの数だけがカウントされるわけではないのでご注意下さい。 具体的には、例えば <input type="submit" value="送信"> に、JavaScriptその他で必要だったりして <input type="submit" name="b1" value="送信"> などと書式してしまうと、とたんに増えてしまうはずなので。 あと、inputのtype取得も出来ないです。これは、元々HTTPリクエスト上にその情報が無いので。 全体的に否定的なお話しばかりで大変に恐縮ではありますが。

yamadachan
質問者

補足

回答ありがとうございます。 否定的な話でも為になったので感謝してます。 ありがとうございました^^

関連するQ&A

専門家に質問してみよう