javascript - 如何在 Yii 和 Ajax 中加载文章而不重新加载页面

标签 javascript php jquery ajax yii

我有一个来自数据库的查看文章,并且每个文章 View 都有空页面加载。所以我会在不重新加载页面的情况下加载文章,我认为使用 Ajax 可以做到这一点,但我对此不太感兴趣。

这是我最初的概念,如下所示:

布局:

CHtml::link($menu['items'][$itemId]['label'],
   array('articles/view',
   'id'=>$menu['items'][$itemId]['link'],
  )
);

// This showing articles name & link

查看:

<?php
    echo $model->article_body;
?>

<script>
   jQuery.ajax({
     type: 'POST',
     dataType: 'html',
     url: ('articles/view'),
     success: function(data){
         document.getElementById('articles').innerHTML = data;
     },
     error: function(){
        alert('Somthing wrong');
     }
   });
</script>

Controller :

public function actionView($id)
{
  $model=$this->loadModel($id);
   $this->render('view',array('model' => $model));
}

有人可以帮助我吗?谢谢

最佳答案

如果我理解正确的话,

在你的 View 文件中是这样的。

 echo CHtml::link($menu['items'][$itemId]['label'],
       array('articles/view',
       'id'=>$menu['items'][$itemId]['link'],
      ),array('class'=>'youclassnamehere')
    );
 echo '<div  id="yourDivId"></div>';

在 javascript 中,你的代码应该类似于:

  $(".youclassnamehere").click(function(){
         $.ajax({
          type:'POST',
         url:$(this).attr('href'),
         success:function(data){
           $("#yourDivId").html(data);
         }
         error:function(data){
          alert('Error occured please try again later..');
         }
    }),
   return false;//this will not redirect your page
});

在 Controller 操作中,您的代码例如

 public function actionView($id)
{
  $model=$this->loadModel($id);
   $this->render('view',array('model' => $model));
}

希望这对你有帮助

关于javascript - 如何在 Yii 和 Ajax 中加载文章而不重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35739506/

相关文章:

javascript - 从宽度 : 100%; to width: 1000 px; when <1000px (Javascript) 更改 div

php - 收集用于ajax提交的表单数据

php - 试图获取非对象 ErrorException Laravel 的属性

php - 在php中插入1000行,每次都不同

jquery - bean 瓣上的色彩小偷

javascript - 如何使用 Javascript 中另一个数组的值更改数组中的特定非零值

javascript - 如何在水平垂直滚动时获取滚动值

php - 如何知道异常来自PHP的行号

javascript onbeforeunload 禁用链接

javascript - jQuery 来选中和取消选中复选框只触发一次