- ベストアンサー
formタグのactionパラメータで自分自身を指定
既存のHTMLプログラムを管理することになりました。 xxxx.phpというファイルのなかで、 <form name="xxx_form" method="post" action="xxxx.php"> という感じで、xxxx.phpのなかで同名のファイルをactionに指定しているのですが、最初に開いたxxxx.phpと、actionで開いたxxxx.phpでは表示内容が異なっているのです。(具体的には、初めとaction後ではリストの内容等が更新されている。) ソースを表示してみると、確かに異なっています(リスト内容の指定部分が異なっている)。しかし、アドレスは同じです。 この動作の仕組みが分かりません。 分かる方、ご指導よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 勘違いしているかもしれないので、補足です。 >ソースを表示してみると、確かに異なっています これはサーバー上でソースを見ていませんか? (ブラウザで右クリック→ソースを見る、など) それならば、単にPHPが生成したHTMLを見ているだけで、もとのPHPを見ていることにはなりませんよ。 私が言ったのはもとのPHPファイルの記述のことです。
その他の回答 (2)
- kaiwarepon
- ベストアンサー率49% (47/95)
xxxx.php がリクエストされた時にフォームから送信されたデータを持っているかどうかで処理を分岐させています。場合によっては、隠しフィールドに処理を分岐するためのパラメータをセットし、フォームの送信によって送られたパラメータの値によって、複数の処理に分岐させることもあります。これにより、入力画面の書き出し→確認画面の書き出し→メール送信といった異なった処理をxxxx.phpというひとつのプログラムでこなすことができます。プログラムの書き方は幾通りもありますので、この場で、この部分と指摘することはできませんが、コードを見ればわかります。おおむね「$_POST」と書かれている部分がフォームによってPOSTされたデータが格納されている配列になりますので、どのように処理されていくかを追ってみるとわかるかも知れません。if、または switch と書かれた部分が条件分岐のところです。また、フォームの隠しフィールドの名前や値なども追ってみるといいかも知れません。
お礼
詳しく説明していただき、ありがとうございました。
補足
POSTや分岐のコードは無いようです。 どちらかといえば、同じファイル名で、フォームの値によって違うファイルを呼び出しているような感じです。現在、クライアント側のPCからチェックしている状態なので、一度サーバのファイル構成を調べてみます。
- partita
- ベストアンサー率29% (125/427)
<form method="post" action="<?=$_SERVER['PHP_SELF']?>"> と、「isset」という関数を利用しているのでは?
お礼
早速回答して頂き、ありがとうございます。
補足
<?=$_SERVER['PHP_SELF']?>の部分は、直にファイル名です。 issetという関数は見当たりませんでした。
お礼
元のソース、見つかりました。 ありがとうございました。
補足
おっしゃる通りです。確認してみます。