通过IFRAME实现页面局布刷新

上一篇 / 下一篇  2007-07-13 08:47:18 / 个人分类:PHP

查看( 82 ) / 评论( 12 )

        局布刷新现在应该说是很流行,实现局布刷新有很多种方法例如AJAX(异步传送),Iframe...等很多种方式,页面局布刷新的好处在这里我想大家都很轻松,这里简单说一下,就不做为本贴主要叙述的内容了。局布刷新故名诗意就是针对页面某一部分进行刷新响应相应的事件,例如:注册会员信息时,检测用户名是否存在这时就需要响应一个检测userID是否存在的事件,在以前我们在开发WEB应用程序时经常时整个页面进行刷新,例如表单里已经填写了部分数据信息,刷新后之前填写的数据信息一无所有,这也是作为用户最为反感的事情,当然你可以通过SESSION,COOKIES...等对象来保留用户之前填写的数据,但这样也往往需要“发送请求->响应请求->返回请求”,这样的一个过程,这样往往的降低的WEB应用程序的执行效率,没有用户希望在那苦苦的等待这一分一秒的时间。

        在AJAX这个词语没有出现的时候已经有很多技术可以弥补WEB应用程序页面刷新的不足了,当然这里有通过JS传递参数控制iframe框架来实现局布页面刷新,解决这样的问题。下面我来介绍一下通过IFRAME实现局布刷新,结合页面部分功能来实现更加人性化,灵活的WEB应用程序,不多说了,下面我来介绍一下我是怎么做的:

<spanid="carPrice"style="display:none">
<iframe.
src="estimate_iframe.html"name="iframeEstimate"border="0"width="645"height="232"
   frameborder="no"style="overflow:hidden"></iframe>
</span>

上面这段iframe不需要我多做解释吧,大家应该很熟悉iframe标签的这些基本参数。页面加载时需要通过图层将iframe标签隐藏,通过CSS样式表

<inputname="cy_selectCar"style="border:0"type="radio"onclick='goImageSelect(this)'value="Q / Q45"carID='Q45'/>Q / Q45 
<inputname="cy_selectCar"style="border:0"type="radio"onclick='goImageSelect(this)'value="M / M35"carID='M35'/>Q / M35
<inputname="cy_selectCar"style="border:0"type="radio"onclick='goImageSelect(this)'value="M / M45"carID='M45'/>Q / M45

这里通过单选按钮radio来控制调用'goImageSelect(this)'函数this表示当前元素下面是goImageSelect 这段脚本.

<script language="JavaScript">
function 
goImageSelect(obj
) {
    var 
imgName1 obj.value
;    
    if (
imgName1 != ""
) {
        
document.all["carPrice"].style.display "block"
;
        var 
carID obj.carID
;
        
carIDValue(carID
);
    } 
}

function 
carIDValue(num
) {
    
document.carForm.carID.value num
;
    
document.carForm.action 'estimate_iframe.php'
;
    
document.carForm.target='iframeEstimate' 
;
    
document.carForm.submit
();
}
</script>

<form. name="carForm"method="post"nsubmit="return false" frameborder="no">
  <input type="hidden" name="carID" value="">
</form>

很明显这段脚本是把隐藏的图层显示出来,获取carID属性的值,将其值传到carIDValue 函数中提交表单  carForm设定<input type="hidden" name="carID" value="">隐藏域的值 这样就可以知道具体是执行的那个radio 按钮了。(因为每个carID 值不同,这里只举3个radio 按钮为例,以此类推)

estimate_iframe.php 在看看PHP文件里是怎么解吸的。大家不要想得很复杂,其实很简单,通过JS控制表单提交文件及显示区域。

//# by gaoming 2007-07-10

$carID $_REQUEST['carID'];

switch (
$carID) {
    case 
"Q45" 
        
$str_price "105,500,000 ";
        
$str_carNum_costs "9,000 ";
        
$str_tax "4,795,450 ";
        
$str_proof "5,000 ";
        
$str_Bond_costs    ="3,836,360 ";
        
$str_income_tax     ="1,918,180 ";
        
$str_total    ="116,063,990 ";
        
$car_images $url['main_skin']."images/ride_car_Q.gif";
        break;
    case 
"M35" 
        
$str_price "63,900,000 ";
        
$str_carNum_costs "9,000 ";
        
$str_tax "2,904,540 ";
        
$str_proof "5,000 ";
        
$str_Bond_costs    ="2,316,360 ";
        
$str_income_tax     ="1,161,820 ";
        
$str_total    ="70,296,720 ";
        
$car_images $url['main_skin']."images/ride_car_m.gif";
        break;
    case 
"M45" 
        
$str_price "81,100,000 ";
        
$str_carNum_costs "9,000 ";
        
$str_tax "3,686,360 ";
        
$str_proof "5,000 ";
        
$str_Bond_costs    ="2,949,090 ";
        
$str_income_tax     ="1,474,540 ";
        
$str_total    ="89,223,990 ";
        
$car_images $url['main_skin']."images/ride_car_m.gif";
        break;

}
echo 
$str_price;
echo (
"<Br>");echo $str_carNum_costs;
echo (
"<Br>");echo $str_tax;
echo (
"<Br>");echo $str_proof;
echo (
"<Br>");echo $str_Bond_costs;
echo (
"<Br>");echo $str_income_tax;
echo (
"<Br>");echo $str_total;
echo (
"<Br>");echo $car_images;

1.jpg

2.jpg

演示地址:http://www.54php.com/myphp/test1/test.php

下载地址:http://www.54php.com/myphp/test1/test.rar


TAG:

yincong的个人空间 yincong 发布于2007-07-13 09:48:20
顶!!!!!!学习下!!!
绿竹居 绿竹居 发布于2007-07-13 10:10:29


学习ING!!!!!
adny adny008 发布于2007-07-16 10:44:41
有难度啊啊,自己肯定不会搞得
十一文的个人空间 十一文 发布于2007-07-16 11:16:54
我看了哈
怎么还是有些不怎么懂哦

等会继续看!
天涯风云的个人空间 天涯风云 发布于2007-07-16 11:35:51
精彩,,值得推荐....
特蓝克斯 -- Amanda 的生活 特蓝克斯 发布于2007-07-16 13:37:14

QUOTE:

原帖由 十一文 于 2007-7-16 11:16 发表
我看了哈
怎么还是有些不怎么懂哦

等会继续看!
哪地方不清楚!不妨可以说出来,研究研究!
我这也使随笔写的:)
十一文的个人空间 十一文 发布于2007-07-16 18:27:44
这会看了遍,明白了
呵呵

刚才我是没找到id="carPrice"
在哪里

再顶哈
特蓝克斯 -- Amanda 的生活 特蓝克斯 发布于2007-07-18 11:03:15
我在这里只是提供一个思路。主要是通过JS往IFRAME里传GET参数!
思路清楚了,那是最重要的。
根据不同的需求去完善,更人性化的实现WEB交互才是我们需要的。
欢迎踩踏 OK_008  星宇楼阁 DVD 发布于2007-07-18 11:05:26
好文章,学习。
jarload发布于2007-07-24 15:14:57
很好,学习中!!!
bluefirejj的个人空间 bluefirejj 发布于2007-07-24 15:33:41
感觉还可以哈,支持一下
tony.wangjun发布于2007-07-25 16:01:23
有意思,不过还不太明白
我来说两句

(可选)

关于作者