业务经理

微信扫描以上二维码

028-61286886

技术咨询

关于网站表单发布后的回调,前端发布回调

迅睿框架 更新 2021-02-22 11:37:48 丛林灰太狼

PHP程序里面

各位大神,求助下,关于网站表单发布后的回调,前端发布回调,参考:https://www.xunruicms.com/doc/897.html 写回调, 没问题,但是如果我是在网站会员中心发布的网站表单,就不能回调了,也就是这个地址发布的可以回调:http://ooxx.com/index.php?s=form&c=zixun&m=post 但是这个地址发布的不能回调http://ooxx.com/index.php?s=member&app=form&c=zixun&m=add。求助了下老大,老大说会员中心的网站表单发布没有写回调方法,只能在这边求助下大神们,我需要在会员中心网站表单发布后,调用回调完成另外一个表的更新和消息的发送。有什么方法可以做到,谢谢了!

方案

  • 官方研发技术-实习 #1 · 2021-02-20 17:48:38
    发一下控制器的代码,index.php?s=member&app=form&c=zixun&m=add。和前端控制器稍微改下就行了
  • 郑中建 #2 · 2021-02-20 17:57:47
    控制器里面加一个这个啊,一样的原理
    // 新增回调函数
         protected function _Call_Post($data) {
            $cp = parent::_Call_Post($data);
            if ($cp['code']) {
                // 这里写 提交成功时的 你的程序代码
                $this->_json($cp['code'], '提交表单成功', $cp['data']);
            } else {
                $this->_json(0, '提交失败', $cp['data']);
            }
        }
  • 丛林灰太狼 #3 · 2021-02-20 17:57:52
    官方研发技术-实习 大神,您好,我复制了个add方法,改名为hufu。代码如下,麻烦您看下!
    public function hufw() {
        $qid = \Phpcmf\Service::L('input')->get('qid');
        $cc = \Phpcmf\Service::M()->db->table(SITE_ID."_form_zixun")->where("id", $qid)->get()->getRowArray();
    
        if(IS_POST){
            $_POST["data"]["title"] = $cc["title"];
            $_POST["data"]["glzlid"] = $cc["glzlid"];
            $_POST["data"]["sjlx"] = '1';
            list($tpl) = $this->_Post(0);
        }
    
        \Phpcmf\Service::V()->assign([
            'cc' => $cc,
        ]);
        \Phpcmf\Service::V()->display('form_hf.html');
    }
    
        // 新增回调函数
        protected function _Call_Post($data) {
            $cp = parent::_Call_Post($data);
            //自己业务处理
    //        exit("222");
            $qid = $data["1"]["hfwtid"];
            $cc = \Phpcmf\Service::M()->db->table(SITE_ID."_form_zixun")->where("id", $qid)->get()->getRowArray();
            //更新关联问题的状态为已回复
            $dataa = array(
                'shifouhuifu' => '1',
            );
            \Phpcmf\Service::M()->db->table('1_form_zixun')->where('id', $qid)->update($dataa);
            $datab = array(
                'uid' => $cc["uid"],
                'author' => $cc["author"],
            );
            \Phpcmf\Service::L('Notice')->send_notice('item_0_2', $datab);
    
            if ($cp['code']) {
                // 这里写 提交成功时的 你的程序代码
                $this->_json($cp['code'], '提交表单成功', $cp['data']);
            } else {
                $this->_json(0, '提交失败', $cp['data']);
            }
        }
  • 官方研发技术-实习 #4 · 2021-02-20 17:59:45
    你这个代码不全面,需要把控制器的全部代码发来丛林灰太狼
  • 丛林灰太狼 #5 · 2021-02-20 18:00:56
    郑中建 嗯,我就是加这个,但是不执行,在父级_Save方法中被拦截了,您可以试下,有可能是我姿势不对 😀
  • 丛林灰太狼 #6 · 2021-02-20 18:03:52
    官方研发技术-实习 好呢 下面是全部代码,麻烦您看下
    <?php namespace Phpcmf\Controllers\Member;
    
    /**
     * 二次开发时可以修改本文件,不影响升级覆盖
     */
    
    class Zixun extends \Phpcmf\Member\Form
    {
    
        public function index() {
            $where = 'sjlx=0'; // 新的条件组合
            if ($this->init['where_list']) {
                $this->init['where_list'].= ' AND '.$where;
                // 考虑到父类也许有可能会自带条件,防止被覆盖默认条件,所以追加一个 AND
            } else {
                $this->init['where_list'] = $where;
            }
            $this->_Member_List();
        }
    
        public function add() {
            $this->_Member_Add();
        }
    
        public function hlist() {
            \Phpcmf\Service::V()->display('form_hlist.html');
        }
    
        //region 回复内容相关
        public function hufw() {
            $qid = \Phpcmf\Service::L('input')->get('qid');
            $cc = \Phpcmf\Service::M()->db->table(SITE_ID."_form_zixun")->where("id", $qid)->get()->getRowArray();
    
            if(IS_POST){
                $_POST["data"]["title"] = $cc["title"];
                $_POST["data"]["sjlx"] = '1';
                list($tpl) = $this->_Post(0);
            }
    
            \Phpcmf\Service::V()->assign([
                'cc' => $cc,
            ]);
            \Phpcmf\Service::V()->display('form_hf.html');
        }
    
        // 新增回调函数
        protected function _Call_Post($data) {
            $cp = parent::_Call_Post($data);
            //自己业务处理
    //        exit("222");
            $qid = $data["1"]["hfwtid"];
            $cc = \Phpcmf\Service::M()->db->table(SITE_ID."_form_zixun")->where("id", $qid)->get()->getRowArray();
            //更新关联问题的状态为已回复
            $dataa = array(
                'shifouhuifu' => '1',
            );
            \Phpcmf\Service::M()->db->table('1_form_zixun')->where('id', $qid)->update($dataa);
            $datab = array(
                'uid' => $cc["uid"],
                'author' => $cc["author"],
            );
            \Phpcmf\Service::L('Notice')->send_notice('item_0_2', $datab);
    
            if ($cp['code']) {
                // 这里写 提交成功时的 你的程序代码
                $this->_json($cp['code'], '提交表单成功', $cp['data']);
            } else {
                $this->_json(0, '提交失败', $cp['data']);
            }
        }
        //endregion
    
        public function edit() {
            $this->_Member_Edit();
        }
    
        public function order_edit() {
            $this->_Member_Order();
        }
    
        public function del() {
            $this->_Member_Del();
        }
    }
  • 官方研发技术-实习 #7 · 2021-02-20 18:10:01
    <?php namespace Phpcmf\Controllers\Member;
    
    /**
     * 二次开发时可以修改本文件,不影响升级覆盖
     */
    
    class Zixun extends \Phpcmf\Member\Form
    {
    
        public function index() {
            $where = 'sjlx=0'; // 新的条件组合
            if ($this->init['where_list']) {
                $this->init['where_list'].= ' AND '.$where;
                // 考虑到父类也许有可能会自带条件,防止被覆盖默认条件,所以追加一个 AND
            } else {
                $this->init['where_list'] = $where;
            }
            $this->_Member_List();
        }
    
        public function add() {
            $this->_Member_Add();
        }
    
        public function hlist() {
            \Phpcmf\Service::V()->display('form_hlist.html');
        }
    
        //region 回复内容相关
        public function hufw() {
            $qid = \Phpcmf\Service::L('input')->get('qid');
            $cc = \Phpcmf\Service::M()->db->table(SITE_ID."_form_zixun")->where("id", $qid)->get()->getRowArray();
    
            if(IS_POST){
                $_POST["data"]["title"] = $cc["title"];
                $_POST["data"]["sjlx"] = '1';
                list($tpl) = $this->_Post(0);
            }
    
            \Phpcmf\Service::V()->assign([
                'cc' => $cc,
            ]);
            \Phpcmf\Service::V()->display('form_hf.html');
        }
    
        protected function _Format_Data($id, $data, $old) {
            $cp = parent::_Format_Data($id, $data, $old) ;
            //自己业务处理
    //        exit("222");
            $qid = $data["1"]["hfwtid"];
            $cc = \Phpcmf\Service::M()->db->table(SITE_ID."_form_zixun")->where("id", $qid)->get()->getRowArray();
            //更新关联问题的状态为已回复
            $dataa = array(
                'shifouhuifu' => '1',
            );
            \Phpcmf\Service::M()->db->table('1_form_zixun')->where('id', $qid)->update($dataa);
            $datab = array(
                'uid' => $cc["uid"],
                'author' => $cc["author"],
            );
            \Phpcmf\Service::L('Notice')->send_notice('item_0_2', $datab);
    
        }
        //endregion
    
        public function edit() {
            $this->_Member_Edit();
        }
    
        public function order_edit() {
            $this->_Member_Order();
        }
    
        public function del() {
            $this->_Member_Del();
        }
    }
  • 丛林灰太狼 #8 · 2021-02-20 18:46:42
    官方研发技术-实习 大神,不好意思 刚去做饭了,我试了下 您给我的代码,确实可以回调了,但是有个问题,发布表单信息的时候,点击按钮没提示了,就闪一下,我打开数据库看了下。信息没保存下来,只是执行了回调的程序,本身提交的信息没保存下来,我把回调的注释了就正常了。
    protected function _Format_Data($id, $data, $old) {
        $cp = parent::_Format_Data($id, $data, $old);
    麻烦您再看下 谢谢了
  • 官方研发技术-实习 #9 · 2021-02-20 18:56:51
    满意答案
    protected function _Format_Data($id, $data, $old) {
            $cp = parent::_Format_Data($id, $data, $old) ;
            //自己业务处理
    //        exit("222");
            $qid = $data["1"]["hfwtid"];
            $cc = \Phpcmf\Service::M()->db->table(SITE_ID."_form_zixun")->where("id", $qid)->get()->getRowArray();
            //更新关联问题的状态为已回复
            $dataa = array(
                'shifouhuifu' => '1',
            );
            \Phpcmf\Service::M()->db->table('1_form_zixun')->where('id', $qid)->update($dataa);
            $datab = array(
                'uid' => $cc["uid"],
                'author' => $cc["author"],
            );
            \Phpcmf\Service::L('Notice')->send_notice('item_0_2', $datab);
            return $cp;
    
        }
  • 丛林灰太狼 #10 · 2021-02-20 20:06:59
    官方研发技术-实习 谢谢官方大神,已经OK了,还有个小问题咨询您下,我想自定义网站表单提交后的提示文字,如何自定义,求指导 谢谢!
  • 丛林灰太狼 #11 · 2021-02-22 11:37:48
    @官方研发技术-实习:完美,多谢官方技术支持!

迅睿系统漏洞

AI文章生成器
AI文章生成器(2026-10-29)
任务插图设置数量
Bing站长数据
Bing站长数据(2026-10-29)
根据BING接口调整菜单 各个页面数据支持点击查看详情
泛解析站群系统
泛解析站群系统(2026-10-29)
AI队列增加清空按钮 表单提示语收敛 目录模式不接管主域名模板
域名授权系统
域名授权系统(2026-10-28)
后台增加前台访问地址链接
GeoSeo收录宝
GeoSeo收录宝(2026-10-28)
1 优化 BreadcrumbList 前端输出item细节 ...
自定义单页
自定义单页(2026-10-28)
增加批量设置url地址 URL规则和分页规则改为页面编辑界面 低...
友情链接
友情链接(2026-10-28)
用于网站友情链接的后台录入,前台提供调用代码,有网站标题、网站log...
关键词TAG
关键词TAG(2026-10-28)
[高级版]增加补录索引生成按钮 [高级版]针对建站系统高级版进行查询...
后台内容复制
后台内容复制(2026-10-28)
模块表单复制成功后返回到对应内容的表单列表中
问答插件
问答插件(2026-10-27)
问答插件基于官网「开源社区」功能分发而来,支持悬赏贴功能,微信通知。...