私が作成したフォームに問題があり、ページ全体をリロードしていないように見えますが、フォームのある部分だけをリロードしているようです。switch ステートメントを使用してさまざまなタブ選択をロードする MVC メソッドを使用しています。
関連するビットは次のとおりです。
最初に、ロールが設定されているかどうかを確認するとともに、ユーザー状態変数を確認します。これはすべて if 選択でうまくいくようです。送信後、含まれている適切なページが読み込まれます。
if ($user_state == "6" && empty($user_role))
{
$role_or_overview = 'Select Role';
$role_or_overview_page = './php/select_role.php';
}
else
{
$role_or_overview = 'Overview';
$role_or_overview_page = './php/overview.php';
}
これは、どのphpスクリプトをタブにロードするかを選択するswitchステートメントにつながります...
switch($user_menu) {
default:
case($role_or_overview):
include($role_or_overview_page);
break;
case('User Submit'):
include('./php/user_entry.php');
break;
}
その switch ステートメントは、表示するタブを決定する別のステートメントに関連付けられています。これらは両方とも、インクルードとしてページ コード全体の先頭付近、フォームの前に発生します。
switch($user_state)
{
default:
echo '<div class="nav">'; // start div nav
div_button('', 'Overview', $user_menu);
echo '</div>'; // end div nav
echo '<div class="clear-both">';
echo '</div>';
break;
case '0':
// Regular User Menu
echo '<div class="nav">'; // start div nav
div_button('', 'Overview', $user_menu);
echo '</div>'; // end div nav
echo '<div class="nav">'; // start div nav
div_button('menu', 'User Submit', $user_menu);
echo '</div>'; // end div nav
echo '<div class="clear-both">';
echo '</div>'
}
シンプルなフォームで、ユーザーは役割と自己投稿を選択できます...
echo '<form action = "./" method = "post" name="role_select">';
echo '<input type="hidden" name="post_role" value="ROLE1">';
echo '<input type="submit" name="DEPT" value="ROLE1">';
echo '</form>';
echo '<form action = "./" method = "post" name="role_select">';
echo '<input type="hidden" name="post_role" value="ROLE2">';
echo '<input type="submit" name="DEPT" value="ROLE2">';
echo '</form>';
インデックスの上部で、投稿された値を確認し、表示したいタブが表示されるようにユーザー状態を設定します
if ($_POST['post_role'])
{
$user_role = mysql_real_escape_string($_POST['post_role']);
$user_state=0;
}
私が直面している問題は、フォームを送信した後、ローカライズされているようです。いくつかのテストエコーをセットアップしましたが、値は含まれているフォームページに到達しますが、タブがクリックされるまで (またはデバッグのために PHP スクリプトを変更しない場合はフォームが 2 回クリックされるまで) ページ全体には到達しません)。
意図的に省略したコードがたくさんありますが、すべて機能します。$user_menu は、タブの名前/値を渡す簡単な方法であり、同じページで選択してロードできるようにします。この役割を適切に投稿して、新しいスイッチ ケースを選択することができません。
どんな助けでも大歓迎です!