业务经理

微信扫描以上二维码

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
    @官方研发技术-实习:完美,多谢官方技术支持!

迅睿系统漏洞

独立站群系统
独立站群系统(2026-09-14)
子站独立部署时修复同步附件失败问题
在线客服
在线客服(2026-09-13)
修复删除会话报错问题 删除会话时联动删除聊天图片
在线考试竞赛系统
在线考试竞赛系统(2026-09-12)
增加投票功能 考试功能拓展 注意:更新后需要执行系统更新,更新数...
网上信箱
网上信箱(2026-09-12)
修复新版本兼容问题
GeoSeo收录宝
GeoSeo收录宝(2026-09-12)
1 优化Update.php文件,解决版本在线升级不完整问题 2 ...
GeoSeo工具箱
GeoSeo工具箱(2026-09-11)
修正历史记录推送
微信系统
微信系统(2026-09-11)
增加数据统计总览界面 账号管理增加服务和公众号的区别 菜单管理支持更...
答题系统
答题系统(2026-09-11)
一站式在线答题系统,支持真题考试、题库练习和错题本,适合培训、考证、...
阿里云滑动验证码
阿里云滑动验证码(2026-09-10)
采用阿里云验证码替换迅睿系统自带的图片验证码和滑动验证码。后台设置方...
下载Plus
下载Plus(2026-09-09)
为网站附件下载加上“计数、限次、统计、防护”四重能力:按用户组控制下...