Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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
Php 进行多步骤选择过程,每个页面有不同的结果_Php_Symfony - Fatal编程技术网

Php 进行多步骤选择过程,每个页面有不同的结果

Php 进行多步骤选择过程,每个页面有不同的结果,php,symfony,Php,Symfony,在任何给定的页面上(它在站点范围内用于不同的目的),我想调用函数getMyForm()或类似的东西,这将为产品提供一个多步骤的选择过程。我们只有这一种产品,但这是一个相当复杂的选择过程 如果我只想在一页上实现这一点,它将相当简单。。。但是我希望这个选择过程可以在不同的页面上使用,而且当选择过程结束后,每个页面的结果都会发生变化时,为每个页面重新创建表单对我来说似乎很愚蠢 我将如何实现这一目标: 我是否应该将表单放在它自己的页面上,然后在选择过程开始时链接到它,并根据用户最初来自的页面在选择后重定

在任何给定的页面上(它在站点范围内用于不同的目的),我想调用函数
getMyForm()
或类似的东西,这将为产品提供一个多步骤的选择过程。我们只有这一种产品,但这是一个相当复杂的选择过程

如果我只想在一页上实现这一点,它将相当简单。。。但是我希望这个选择过程可以在不同的页面上使用,而且当选择过程结束后,每个页面的结果都会发生变化时,为每个页面重新创建表单对我来说似乎很愚蠢

我将如何实现这一目标:

  • 我是否应该将表单放在它自己的页面上,然后在选择过程开始时链接到它,并根据用户最初来自的页面在选择后重定向到相应的页面

  • 使用服务容器或类似工具在特定页面上呈现表单,然后使用会话属性/变量跟踪用户当前正在执行的步骤,并在每次选择后刷新当前页面

  • 完全不同的东西

  • 其他内容:

    • 我希望它在没有javascript/jQuery的情况下能够正常工作,但是 这将是一个很好的补充在未来,所以我不想排除它,如果 可能

    • 选择过程取决于在中选择的内容 上一步,所以我不能在第一步中渲染整个表单 需要进行某种刷新


    首先,我想说,您不能完全避免选择过程中使用javascript,哪怕只是为了触发选择器上的更改事件。让用户通过一些按钮手动触发页面刷新似乎不是一个好主意

    但是,如果您非常愿意,您需要使用FormBuilder创建一个表单控制器,只需检查一个请求并相应地呈现一个表单即可

    例如,如果未提供任何请求,则呈现的起始表单仅包含一个
    select
    和一个
    submit
    按钮,其操作是简单地提交到同一页面。主页面控制器包括一个表单控制器,所以表单控制器获得一个请求并呈现第二部分,依此类推