早速、本題に入りましょう
バックエンドで働いたことがある人は、ナビゲーションを処理するために iframe がよく使用されることをご存知でしょう。一般的な考え方に従えば、この機能は非常に簡単です
しかし、私が Smarty を使用する場合は。 , 問題が見つかりました。たとえば、iframeset はトップ、左側のメニュー、右側のメインに分かれています。
通常、smarty を使用して処理すると、通常は次のようになります:
3 つのページが単なる静的なページの場合、は次のように処理されます
iframe.html コード:
コードをコピー コードは次のとおりです:
iframe 内のコンテンツ ページには次のような特別な処理が必要であるとします。
top.html はバックグラウンド ログイン ユーザー名を表示する必要があります
menu.html メニューは動的に取得されます
main.html はサーバー情報を読み取る必要があります
この方法です その場合、3 つのコンテンツ ページにそれぞれ 3 つのバックグラウンド処理ページを使用します
コードをコピーします コードは次のとおりです:
//top. php:
$smarty->assign('user', $names );
smarty_Output('top.php')
//menu.php:
$arr=array();
$smarty->assign('menu', $arr);
smarty_Output('menu.php');
$smarty->assign('serverInfo', $serverInfoArr); ('main.php');
//iframe ページを表示します
smarty_Output ('iframe.html')
上記の処理方法は要件を完全に満たすことができます
iframe.html コード:
コードをコピーします
コードは次のとおりです。
今、分離したいと仮定しましょう3つのコンテンツページを役割に分けて、3つのページに異なるエフェクトを表示する必要があります
上記の処理方法だと、3つのページを別々に処理する必要があり、当然冗長な処理が発生し、今後のメンテナンスも面倒になります
以下の方法を思いつき、専用のハンドラーを独自に作成しました。 iframe.php は、条件によって上記 3 つのページをシミュレートします
コードを直接貼り付けます:
iframe.php バックエンド コード:
コードをコピーします
コードは次のとおりです: /*ここに共有処理コードを入れます*/
switch($src) {
case "top":
/*ここに処理コードを入れます*/
smarty_Output('top.html');
case "menu":
/*ここに処理コードを置きます*/
smarty_Output('menu.html');
case "main":
/*ここに処理コードを入れます*/
smarty_Output('main. html');
デフォルト:
break;
iframe.html:
コードは次のとおりです:
こうすることでかなり便利になった気がします
http://www.bkjia.com/PHPjc/325060.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/325060.html
技術記事バックエンドで作業したことがある方なら、この機能を実行する一般的な考え方に従えば、非常に簡単であることがわかると思います。。