Javascript 如何通过OnClick返回带有新变量的switch语句?
我正在为俱乐部建立招生申请。我无法将用户从一个页面转到另一个页面。每个页面都是一个模块,通常是一个表单。它们可以在位置上有所不同,就像用户可以改变页面在页面中的位置一样 下面是我的数据库的大致情况。一个俱乐部可以有一个或多个入口。进水口由多个模块组成。数据库模型如下所示:Javascript 如何通过OnClick返回带有新变量的switch语句?,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我正在为俱乐部建立招生申请。我无法将用户从一个页面转到另一个页面。每个页面都是一个模块,通常是一个表单。它们可以在位置上有所不同,就像用户可以改变页面在页面中的位置一样 下面是我的数据库的大致情况。一个俱乐部可以有一个或多个入口。进水口由多个模块组成。数据库模型如下所示: table: intake intake_id(P) club_id 12345 99999 12346 99999 12347
table: intake
intake_id(P) club_id
12345 99999
12346 99999
12347 99998
table: intake_has_module
intake_id(P) module_id position
12345 1 2
12345 2 1
12345 3 3
12346 1 1
12346 2 2
etc.
table: module
module_id(P) name
1 Personal Information
2 Terms and Conditions
3 Subscriptions
(Dummy data)
switch ($module_sql_2['module_id']) {
case 1:
generate_page('intake/personalinformation.twig');
break;
case 2:
generate_page('intake/termsandconditions.twig');
break;
case 3:
generate_page('intake/subscriptions.twig');
break;
default:
generate_page('intake/main.twig');
break;
}
在这里我从相应的俱乐部获得了入场证
在这里,我从俱乐部的入口获得了位于第一位置的模块id
$module_sql = $db->sql_query('SELECT module_id FROM fit_vg_intake_has_module WHERE position = 1 AND intake_id = ' . $intake_sql_2['intake_id']);
$module_sql_2 = $db->sql_fetchrow($module_sql);
然后我在一个交换机中使用这个模块\u id,如下所示:
table: intake
intake_id(P) club_id
12345 99999
12346 99999
12347 99998
table: intake_has_module
intake_id(P) module_id position
12345 1 2
12345 2 1
12345 3 3
12346 1 1
12346 2 2
etc.
table: module
module_id(P) name
1 Personal Information
2 Terms and Conditions
3 Subscriptions
(Dummy data)
switch ($module_sql_2['module_id']) {
case 1:
generate_page('intake/personalinformation.twig');
break;
case 2:
generate_page('intake/termsandconditions.twig');
break;
case 3:
generate_page('intake/subscriptions.twig');
break;
default:
generate_page('intake/main.twig');
break;
}
所以这部分对我来说是正确的。用户可以在设置面板中切换每个模块的位置。
现在是我的问题和疑问:
假设用户在“条款和条件”模块中。这是模块id 2和位置1。当他点击一个按钮确认他已经接受了条款和条件时,他应该被移动到模块位置为+1的模块_id=2
我所尝试的:
我试着给按钮加上一个按钮。单击javascript函数时,会调用名为next_module()的函数,操作名为accepted terms。
我将此操作传递到使用另一个开关的php文件:
switch ($action) {
case 'accepted-terms':
$position_sql = $db->sql_query('SELECT position FROM intake_has_module WHERE module_id = 2 AND intake_id = ' . $intake_sql_2['intake_id']);
$position_sql_2 = $db->sql_fetchrow($position_sql);
break;
default:
break;
}
在这个开关中,您可以看到,我得到了模块_id=2的模块的位置。
它返回正确的1。现在我可以得到位置为1+1的模块id。这就是我已经走了多远。基本上,我的问题是:当有人单击按钮时,如何使用新的模块id返回到第一个开关?我通过使用处理程序数组并将位置添加到url后面,如/intrange/1、/intrange/2等,解决了这个问题
$handler_page = System::getHandlerArray()[0];
if($handler_page == null){
$handler_page = '1';
}
在这里,我检查用户是否在/摄入。如果他是,因此System::getHandlerArray()[0]==0,
对于第一个位置,我为变量赋值1
然后,要在模板中使用此变量,请执行以下操作:
$template->assign_var('position', (int)$handler_page + 1);
我添加1是因为我想将当前位置+1分配给这个变量,因为我将使用它将带有onClick的页面指向下一个位置,如下所示:
<script>
function next_module() {
window.location.href = ('/intake/' + {{ position }});
}
</script>
函数next_模块(){
window.location.href=('/intraction/'+{{position}});
}