我创建的表单似乎没有重新加载整个页面,而只是表单的一部分。我正在使用一种 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 只是传递选项卡名称/值的一种简单方法,因此可以在同一页面中选择和加载它们。我只是无法让这个角色正确发布并选择一个新的开关盒。
任何帮助表示赞赏!