2012-10-26 118 views
0

我正在開發一個簡單的(!)2頁面應用程序。在單頁應用程序中訪問會話變量

第1頁:有關程序正在爲他的旅行從用戶採取基本的細節 - 此行的名稱,日期等

點擊保存後,項上使用MongoDB的控制器,鋰PHP創建了程序。一個ID生成並將其傳遞到第2頁爲像這樣的URL參數:

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

第2頁:使用許多骨幹腳本(個人js文件託管)單頁的應用程序,並允許用戶添加他的節目的最新細節。沒有js腳本是在線的。

我希望在完成按下時將骨幹集合保存在服務器端,但需要使用此集合發送program_id,以便在MongoDB中更新正確的程序。

問題:

  1. 怎樣才能確保從鋰/ PHP的服務器端program_id由骨幹的JavaScript是在自己的js文件(不在線)
  2. 什麼其他選項可用回升除了Controller :: redirect將控件從page1轉發到page2?
  3. 還有哪些其他選項可用於傳遞program_id和骨幹/ JS層可能需要的任何其他值。有沒有傳遞這些物品的標準方式?
+0

你知道它的URL中的$ program_id,它可以被你的PHP解析,也可能被骨幹js解析,因爲它是window.location.href中的一個路由值 –

回答

1
  1. 有幾個選項:

    1. 從window.location.href
    2. 動態地在你的鋰視圖中創建一個JavaScript代碼的解析出program_id。它可以像這樣簡單:
      "<script> myvars = " . json_encode(array(...)) . "<script>"
      然後你可以從javascript讀取變量。

    3. 從鋰

  2. 這是一個很好的方法動態地創建onDomRady功能。也就是說,一個頁面顯示錶單並從表單接收數據,另一個頁面顯示一些數據。它們不相互關聯,並且會使代碼易於理解。

  3. 您可以使用AJAX/JSON向/從服務器發送/接收數據。另請參閱答案1B,1C

0

如果它只是被寫入到返回當前會話的信息,你需要在一個單頁的應用程序來訪問,只是做一個控制器的會話(即SessionsController)的變量,並開啓內容協商。

然後你可以隨時得到你需要的任何密鑰。