ThinkPHP中引入iDialog插件来实现查看全文功能

18 篇文章 0 订阅
3 篇文章 0 订阅

1.将iDialog核心包复制到项目中:



2.引入2个JS文件,并修改目录地址:

<script src="__COMMON__/iDialog/jquery-1.8.3.min.js"></script>
<script src="__COMMON__/iDialog/jquery.iDialog.js" dialog-theme="default"></script>

3.实现功能:点击不同的查看全文按钮,能够看到不同的内容。

          思路:在每个查看全文的按钮上,增加点击事件,来调用不同的对话框




            代码如下:

<script type="text/javascript">

function show(title,content){
      iDialog({
          title: title,
          //标志出唯一的对话框,如果当前页面存在多个对话框时,需要注释该参数
          //id:'DemoDialog  ',
          content:content,
          lock: true,  //遮蔽效果的配置项
          width:800,   // 对话框的宽
          fixed: true,
          height:400   // 对话框的高
      });

方式二:采用ajax方式,通过php从后台根据id读取数据,显示在对话框上

            ①:使用ajax方法访问后台php程序,并且将id传入后台程序

            

                    代码如下:

        

function show(id){
   //调用post方法,访问后台
   var url ="{:U('getDoc')}";
   var data={'id':id};
   $.post(url,data,function(msg){
      //alert(msg);
      iDialog({
         title: msg.doc_title,
         //标志出唯一的对话框,如果当前页面存在多个对话框时,需要注释该参数
         //id:'DemoDialog  ',
         content:msg.doc_content,
         lock: true,  //遮蔽效果的配置项
         width:800,   // 对话框的宽
         fixed: true,
         height:400   // 对话框的高
      });
   },'json');

            ②编写后台程序,接收id,并根据id获取标题和内容,return给前台

            

            前台的对话框显示内容如下图,需要在Doc/getDoc方法中,将内容进行解码。

            

                解码操作如下:

function getDoc(){
    //接收ajax传过来的id
    $id= I('post.id');
    //2.根据id查询公文信息
    $info = D('Doc')->field('doc_id,doc_title,doc_content')->find($id);
        //将doc_centent字段中的内容解码
        $info['doc_content'] = htmlspecialchars_decode($info['doc_content']);
    //3.将$info数组转为json数据并返回
    echo json_encode($info);

            全部操作结束。

总结:1.为每个"查看全文"按钮,增加点击事件,触发一个show函数。
          2.show函数访问后台php程序(Doc/getDoc),并将当前的要查看的id传递到后台。
          3.编写Doc/getDoc方法:①先接收id,根据id查询要查看的标题和内容,并将内容解码,最后以json数据格式输出
          4.在前台的show函数中,接收getDoc返回的结果,使用弹出对话框的方法,将接收的json数据显示到对话框上。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkPHP6 的插件功能可以通过以下步骤实现: 1. 创建一个名为 `plugin` 的文件夹,用于存放所有的插件。 2. 在 `composer.json` 文件添加以下代码,用于加载插件: ``` "autoload": { "psr-4": { "app\\plugin\\": "plugin/" } }, ``` 这样,当调用 `app\plugin\` 命名空间下的类时,Composer 会自动从 `plugin/` 目录下加载对应的文件。 3. 在 `config/app.php` 文件添加以下代码,用于启用插件: ``` 'autoload' => [ 'plugin' => [ 'hello-world' => true, // 启用 hello-world 插件 ], ], ``` 这里以 `hello-world` 插件为例,将其启用。 4. 在 `plugin` 文件夹下创建 `hello-world` 文件夹,并在其创建 `composer.json` 文件,用于定义插件的依赖关系和命名空间。例如: ``` { "name": "hello-world/hello-world", "description": "A simple hello world plugin for ThinkPHP6", "type": "thinkphp-plugin", "autoload": { "psr-4": { "hello\\world\\": "src/" } }, "require": {} } ``` 这里定义了 `hello-world` 插件的名称、描述、类型、自动加载规则和依赖关系。 5. 在 `hello-world` 文件夹下创建 `src` 文件夹,并在其创建 `HelloWorld.php` 文件,实现插件功能。例如: ``` <?php namespace hello\world; class HelloWorld { public function sayHello() { echo 'Hello, world!'; } } ``` 这里定义了一个 `HelloWorld` 类,其包含一个 `sayHello` 方法,用于输出 `Hello, world!`。 6. 在需要使用插件的地方,可以使用以下代码来调用插件功能: ``` $helloWorld = new \hello\world\HelloWorld(); $helloWorld->sayHello(); ``` 这里实例化了 `HelloWorld` 类,并调用了其的 `sayHello` 方法,输出了 `Hello, world!`。 通过以上步骤,就可以在 ThinkPHP6 实现插件库的功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值