5

問題についてあなたの助けが必要です。ホームページに 2 つのフォームがあり、ユーザーが異なる時間に入力して送信するようにしています。私の問題は、両方の処理ページを 1 つだけにしたいということです。通常、これは別のページで行うことができます。しかし、同じページでそれを行うことが可能かどうか知りたいです。

わかりました..アクションページでフォームAを送信すると、送信されていないフォームBの変数に未定義のインデックスがありません。もちろん、GETを使用することはお勧めしません。

お時間をいただきありがとうございます。

4

3 に答える 3

10

これを行うことはまったく前代未聞ではありません。フォーム要素の action 属性には、/submit.php?action=registerorのように異なるパラメータが渡されることがよくあります/submit.php?action=activate

したがって、次のようなコードがあります。

if ($_GET['action'] == 'register') {
  // Register user
} else if($_GET['action'] == 'activate' {
  // Activate user
}

ただし、送信ボタンの値を変更して、両方のフォームのアクション属性を同じにすることもできます。

if (isset($_POST['submit'])) {
  if ($_POST['submit'] == 'register') {
    // Register user
  } else if($_POST['submit'] == 'activate') {
    // Activate user
  }
}
于 2012-05-05T05:15:53.160 に答える
1

同じページでもできます。action両方のフォームを同じにする必要があります。

いくつかの条件を作成し、ソース フォームForm AForm B応じて個別の機能を記述する必要があります。

@Amiが使用したように、実際のパラメーターで確認できます。

/submit.php?action=registerまた/submit.php?action=activate

したがって、次のようなコードがあります。

if ($_GET['action'] == 'register') {
  // Register user
} else if($_GET['action'] == 'activate' {
  // Activate user
}

ただし、送信ボタンの値を変更して、両方のフォームでアクション パラメータを同じにすることもできます。

if (isset($_POST['submit'])) {
  if ($_POST['submit'] == 'register') {
    // Register user
  } else if($_POST['submit'] == 'activate') {
    // Activate user
  }
}
于 2012-05-05T05:04:39.290 に答える