Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过OnClick返回带有新变量的switch语句?_Javascript_Php_Jquery_Html - Fatal编程技术网

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}});
}