0

我正在开发一个简单的(!)2 页应用程序。

第 1 页:从用户那里获取有关为他的旅行创建的程序的基本详细信息——旅行名称、日期等。

单击保存后,将使用 Lithium PHP 中的控制器在 MongoDB 上为程序创建一个条目。生成一个 id 并将其作为 URL 中的参数传递到第 2 页,如下所示:

$this->redirect('/iplans/save/' . $program_id . '/' . $program_name);

Page 2:是一个使用许多 Backbone 脚本(托管在单独的 js 文件中)的单页应用程序,并允许用户添加他的程序的日期细节。没有 js 脚本是内联的。

我希望在按下 Finish 时将主干集合保存在服务器端,但需要使用此集合发送 program_id,以便在 MongoDB 中更新正确的程序。

问题:

  1. 如何确保来自锂/php服务器端的program_id被它们自己的js文件(不是内联)中的主干javascript拾取
  2. 除了 Controller::redirect 之外还有哪些其他选项可以将控件从 page1 转发到 page2?
  3. 可以使用哪些其他选项来传递 program_id 以及骨干/JS 层可能需要的任何其他值。是否有传递此类物品的标准方式?
4

2 回答 2

1
  1. 有几个选项:

    1. 从 window.location.href 中解析出 program_id
    2. 在您的锂视图中动态创建一些 javascript。它可以很简单:
      "<script> myvars = " . json_encode(array(...)) . "<script>"
      然后您可以从 javascript 中读取变量。

    3. 从锂动态创建 onDomRady 函数

  2. 这是一个好方法。也就是说,一页显示表单并从表单接收数据,一页显示一些数据。它们彼此不相关,这将使代码易于理解。

  3. 您可以使用 AJAX/JSON 向服务器发送/接收数据。另见答案 1b,1c

于 2012-10-26T14:46:33.347 回答
0

如果它只是一个被写入会话的变量,您需要在单页应用程序中访问,只需制作一个SessionsController返回当前会话信息的控制器(即),并打开内容协商。

然后,您可以随时获得所需的任何密钥。

于 2012-10-28T17:36:08.517 回答