検索
ホームページphp教程php手册smarty巧妙处理iframe中内容页,smartyiframe

smarty巧妙处理iframe中内容页,smartyiframe

做过后台的,应该都知道,经常要用到iframe来处理导航,如果按一般的思路来做这个功能,还是挺简单的

可是当我用smarty的时候,就发现了问题,比如,一个iframeset分成了:头部top,左边menu,右边main,

正常情况,用smarty来处理的话,一般是这样:

如果3个页面仅仅只是静态页面的话,就是如下处理

iframe.html代码:

<frame src="top.html" name="topFrame" id="topFrame" scrolling="no"><br />  <frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"><br />    <frame src="menu.html" id="leftbar" noresize name="menu" scrolling="yes"><br />    <frame src="main.html" id="rightbar" noresize name="main" scrolling="yes"><br />  </frameset>

==================================================================

假设iframe里面的内容页都要应用到一些特殊处理,如:

top.html需要显示后台登陆用户名

menu.html中menu都是动态获取

main.html中需要读取服务器的信息

这样的话,我们会给3个内容页分别用3个后台处理页

//top.php:   $smarty->assign('user', $names );   smarty_Output('top.php')   //menu.php:   $arr=array();   $arr=GetMenu();   $smarty->assign('menu', $arr);   smarty_Output('menu.php');   //main.php   $smarty->assign('serverInfo', $serverInfoArr);   smarty_Output('main.php');   //显示iframe页   smarty_Output('iframe.html')

 

上面的处理方法,完全能达到要求

iframe.html代码:

<frame src="top.php" name="topFrame" id="topFrame" scrolling="no"><br />  <frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"><br />    <frame src="menu.php" id="leftbar" noresize name="menu" scrolling="yes"><br />    <frame src="main.php" id="rightbar" noresize name="main" scrolling="yes"><br />  </frameset>

========================================================================

现在我们假设,我们现在要对这3个内容页分别进行分角色处理,不同角色,3个页面需要显示不同的效果

按上面的处理方法,我们就需要对3个页面分别处理,这样就自然的就多了冗余的处理,而且以后的维护也麻烦

于是我想到了下面的方法,独立出一个专门的处理程序iframe.php,通过条件来模拟出上面3个页面

直接贴代码了:

iframe.php 后台代码:

/*此处放共用处理代码*/<br /><br />switch($src)<br />{<br />      case "top":<br />         /*此处放处理代码*/<br />         smarty_Output('top.html');<br />         break;<br />      case "menu":<br />         /*此处放处理代码*/<br />         smarty_Output('menu.html');<br />         break;<br />      case "main":<br />         /*此处放处理代码*/<br />         smarty_Output('main.html');<br />         break;<br />      default:<br />         break;<br />}


iframe.html:

<frame src="iframe.php?src=top" name="topFrame" id="topFrame" scrolling="no"><br />  <frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"><br />    <frame src="iframe.php?src=menu" id="leftbar" noresize name="menu" scrolling="yes"><br />    <frame src="iframe.php?src=main" id="rightbar" noresize name="main" scrolling="yes"><br />  </frameset>


通过这样处理,我感觉方便多了

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
使用PHP处理PDF文件的方法使用PHP处理PDF文件的方法Jun 19, 2023 pm 02:41 PM

PDF文件作为一种通用的文件格式,被广泛应用于各种应用场景,如电子书、报表、合同等等。在开发过程中,我们常常需要对PDF文件进行生成、编辑、读取等操作。而PHP作为一种脚本语言,也能够轻松地完成这些任务。本文将介绍使用PHP处理PDF文件的方法。一、生成PDF文件生成PDF文件有许多方法,其中最常见的是使用PDF库。PDF库是一种生成PDF文档的工具,它为

CakePHP如何处理文件上传?CakePHP如何处理文件上传?Jun 04, 2023 pm 07:21 PM

CakePHP是一个开源的Web应用程序框架,它基于PHP语言构建,可以简化Web应用程序的开发过程。在CakePHP中,处理文件上传是一个常见的需求,无论是上传头像、图片还是文档,都需要在程序中实现相应的功能。本文将介绍CakePHP中如何处理文件上传的方法和一些注意事项。在Controller中处理上传文件在CakePHP中,上传文件的处理通常在Cont

CakePHP如何处理多语言?CakePHP如何处理多语言?Jun 06, 2023 am 08:03 AM

CakePHP是一个流行的PHP开发框架,它可以帮助开发者快速构建高质量的Web应用程序。随着全球化的发展,越来越多的应用需要支持多语言,CakePHP也提供了相应的支持。本文将介绍CakePHP如何处理多语言。一、多语言支持多语言支持是CakePHP的一项重要功能。从版本2.0开始,CakePHP支持gettext文件格式,该

Java错误:JavaFX线程卡顿错误,如何处理和避免Java错误:JavaFX线程卡顿错误,如何处理和避免Jun 24, 2023 pm 05:52 PM

在进行JavaFX应用程序开发的过程中,我们常常会遇到JavaFX线程卡顿错误。这种错误的严重程度不同,可能会对程序的稳定性和性能产生不利的影响。为了保证程序的正常运行,我们需要了解JavaFX线程卡顿错误的原因和解决方法,以及如何预防这种错误的发生。一、JavaFX线程卡顿错误的原因JavaFX是一个多线程的UI应用程序框架,它允许程序在后台线程中执行长时

PHP语言开发中如何检测和处理空值错误?PHP语言开发中如何检测和处理空值错误?Jun 11, 2023 am 10:51 AM

随着现代Web应用不断发展,PHP作为其中最流行的编程语言之一,被广泛地应用于网站开发中。但在开发过程中,经常会遇到空值错误,而这些错误会导致应用程序抛出异常,进而影响用户的使用体验。因此,在PHP开发过程中,如何检测和处理空值错误,是程序员们需要掌握的重要技能。一、什么是空值错误在PHP开发过程中,空值错误通常指的是两种情况:变量未初始化和变

如何构建基于Spring Boot的分布式事务处理如何构建基于Spring Boot的分布式事务处理Jun 23, 2023 am 09:24 AM

在企业级应用程序中,分布式系统已经成为一个常见的架构模型。分布式系统由多个处理单元(节点)组成,这些节点协同工作以完成复杂的任务。在分布式系统中,事务处理是一个必不可少的组件,因为它能够确保所有节点协同工作的结果一致性。本文将介绍如何构建基于SpringBoot的分布式事务处理。一、什么是分布式事务处理?在单节点系统中,事务处理通常是一个简单的过程。当应用

如何使用PHP进行Excel文件处理?如何使用PHP进行Excel文件处理?May 13, 2023 am 08:00 AM

随着Excel文件在商业领域和日常生活中的不断普及和应用,我们经常需要使用PHP处理Excel文件,例如数据的导入导出,数据的筛选和排序等。因此,本文将介绍如何使用PHP进行Excel文件处理。安装PHPExcel库PHPExcel是一款强大的PHP操作Excel文件的开源库,其支持读取、写入Excel文件,并提供了许多便捷的操作方法。在使用之前需要先安装P

Redis实现异步任务处理详解Redis实现异步任务处理详解Jun 20, 2023 am 08:26 AM

随着Web应用不断发展,异步任务处理的需求越来越重要,因为我们需要确保用户在完成任务前可以继续使用应用程序。在这种情况下,除了异步任务处理外,无法实现多任务并行处理,因此常常需要使用一些工具来处理异步任务,其中Redis是非常有用的一种工具。Redis是一种高性能的内存数据库,可以用来快速存储、读取和操作数据。它的主要用途是实现缓存和消息传递,但是,它也可以

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!