我在创建的表单上遇到了一些麻烦,似乎没有重新加载整个页面,只是表单中的部分。我正在使用一个MVC方法,该方法使用switch语句来加载不同的选项卡选项。
相关位在这里:
首先,我们检查用户状态变量,并检查他们的角色是否已设置。这一切似乎都适用于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';
}
这导致了一个switch语句,它选择加载到选项卡中的php脚本......
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脚本时第二次单击表单时)。
我故意遗漏了许多代码,但一切正常。 $ user_menu只是传递选项卡名称/值的简单方法,因此可以在同一页面中选择和加载它们。我只是不能让这个角色正确发布并选择一个新的开关案例。
任何帮助表示赞赏!