$_SESSION[$g_url][$ui][‘clients’][‘id’]
$g_ulrは、セッションの個別IDで画面タグ単位で生成 日付時間秒ミリの9桁使用
$uiはセッションの階層 画面単位で階層づけ
clientsは画面単位の定義
idは各項目
例 画面1(一覧検索)>>明細編集>>明細確認
画面1のINI処理で
$_SESSION[$g_url][$ui][‘url’]=’画面1’が存在するか
なければ $ui=count($_SESSION[$g_url]で現在のセッション階層を確認し
その下の階層に「画面1」を追加する
$_SESSION[$g_url][0][‘url’に’画面1’がセットされる
セット時だけ画面1のセッションをクリア
画面内の明細の選択で
$_SESSION[$g_url][$ui][‘url’]=’画面2’が存在するか
なければ $ui=count($_SESSION[$g_url]で現在のセッション階層を確認し
その下の階層に「画面2」を追加する
$_SESSION[$g_url][1][‘url’に’画面1’がセットされる
セット時だけ画面2のセッションをクリア
「画面1」のセッションから選択KEYを「画面2」の項目にセット
画面1に戻るときは
array_pop($_SESSION[$g_url]);で最下層のセッションを破棄して
画面1へ
例2。複数画面から同位置画面に遷移
画面A一覧[gamenA1]からA明細[gamenA2]
画面B一覧[gamenB1]からA明細[gamenA2]へ
まずは画面AのINIで階層用のセッションgamenA1を確保処理
gamenA1セッションをクリア
$ui=selectURL($sestab,’gamenA1′);
$g_url=”‘”.$sestab.”‘”;
if($ui==-1)
{
sessein_creat($g_url);
}
次に画面A1で選択されたkeyを画面A1のセッションに保存し
画面A2のINIを呼び出す
画面A2のセッションを作り
直前の階層がgamenA1 かgamenB1か判断して
各keyをセット
/画面A2のセッションの有無
$ui=selectURL($sestab,'gamenA2');
$g_url="'".$sestab."'";
if($ui==-1)
{ //階層がなかればセッションを生成
sessein_creat($g_url);
//直前のセッション
$ui=selectURL($sestab,'gamenA2');
$i=selectURL($sestab,'gamenA1');
if($i!=-1)
{
sessein_set($g_url,$ui,$i);
}else
{
$i=selectURL($sestab,'gamenB1');
if($i!=-1)
{
sessein_set_my_page1($g_url,$ui,$i);
}
戻る時は画面A2明細のedit、dspのcontorllerで
直前階層か判断し、セッション画面A2明細を廃棄して画面A1または画面B1へ
array_pop($_SESSION[$g_url]);
$i=selectURL($sestab,'gamenA1');
if($i!=-1)
{
header('Location:routes.php?get=gamenA1_view'.'&sestab='.$sestab);
break;
}else
{
$i=selectURL($sestab,'gamenB1');
if($i!=-1)
{
header('Location:routes.php?get=gamenB1_view'.'&sestab='.$sestab);
break;
}
}
break;