yii框架使用ajax实现页面局部刷新的方法教程

jerry Yii 2015年08月12日 收藏

view界面代码:

  1.         <li class="mb5">
  2.             <label class="sectionLabel-A1">空间视角图*:
  3.                 <a href="javascript:void(0);" onclick="addAngle()" style="color: #3B5999;font-weight: normal">添加视角</a>
  4.             </label>
  5.             <div id="addAngles" class="sectionBox-A1 clear sectionForm-A1 sectionForm-A1-4">
  6.                 
  7.             </div>
  8.         </li>

js代码:

  1. //添加空间视角
  2. function addAngle()
  3. {
  4.     $.ajax({
  5.              type: "POST",
  6.              url: "/space/addAngle",
  7.              data:{} ,
  8.              dataType: "html",
  9.              success: function(html){
  10.                  $("#addAngles").append(html);
  11.              }
  12.          })
  13. }

控制器controller界面的代码:

  1.         public function actionAddAngle()
  2.         {
  3.             $model=new Space();
  4.             $form = $this->Widget('CActiveForm', array());
  5.             $this->renderPartial('addAngle',array('model'=>$model,'form'=>$form));
  6.         }

异步渲染的页面addAngle.php代码:

  1. <div class="angle_image">
  2.     <i class="del_angle_icon"> </i>
  3.     <p class="angleVal_space">
  4.         视角*:
  5.         <?php echo CHtml::textField('angle[]','',array('size'=>'25','class'=>'')); ?>
  6.     </p>
  7.     <div class="anglePics">
  8.         空间空模图*:<br>
  9.         <?php echo $form->FileField($model,'pics[]',array('class'=>'')); ?>
  10.     </div>
  11.     <div class="anglePics">
  12.         空间效果展示图*:<br>
  13.         <?php echo $form->FileField($model,'showpics[]',array('class'=>'')); ?>
  14.     </div>
  15.     <div class="anglePics">
  16.         空间平面布局图*:<br>
  17.         <?php echo $form->FileField($model,'floorplan[]',array('class'=>'')); ?>
  18.     </div>
  19. </div>

其原理就是通过view中调用的js代码去请求控制器中的AddAngle方法,把获取的数据渲染addAngle.php页面,并且把渲染的结果以html格式返回给js,js获取到html之后把html代码加到页面的要更新的位置,整个过程是连续的,缺一不可,希望我的方法对大家有帮助!