我如何发送一个Ajax请求从CS车TPL文件控制器后端PHP文件? [英] How can I send an ajax request to controller backend php file from tpl file in CS cart?

查看:209
本文介绍了我如何发送一个Ajax请求从CS车TPL文件控制器后端PHP文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是code,我是新的CS车,摸不清我怎么可以从第三方物流在PHP文件中的Ajax调用。 我想实现一个文件上传到CS车的管理面板。 钩/ order_management / upload_data.tpl `

  $(文件)。就绪(函数(){
            警报(DOC准备好了);
            $(#btn_ok)。点击(函数(事件){
               。事件preventDefault();
                。VAR VAL = $(#MYFILE)VAL();
                VAR数据=数据=+ VAL;
                $阿贾克斯({
                    键入:POST,
                    网址:../../../app/addons/ugw_upload_form/controllers/backend/order_management.post.php,
                    数据:数据,
                    缓存:假的,

                    成功:函数(响应)
                     {的console.log(响应);}
               });
             });
        });
        < / SCRIPT>

        < D​​IV CLASS =控制组>
         <输入类型=文本名称=MYFILEID =MYFILE/>
         <输入类型=按钮ID =btn_okNAME =提交值=上传>
        < / DIV>`
 

控制器/后端/ order_management.post.php
`

 如果(定义(自举')!){模具(访问被拒绝); }
        使用Tygh \注册表;

        注册::获得(视图) - >分配(test_var,测试);
        注册::获得(视图) - >分配(uploadhere,在这里上传文件);


           如果(使用isset($ _ POST ['数据'])){
               $ textvalue = $ _ POST ['数据'];
                $处理=的fopen(Z:\ members.txt,W);
                FWRITE($处理,$ textvalue);
                fclose函数($处理);
           }
        ?>`
 

解决方案

原因URL的情况下,Ajax请求的重定向在a​​pp \功能fn_get_route()方法\ fn.control.php

 函数fn_get_route(安培; $ REQ,$面积= AREA){
:::
注册::设置(!?runtime.controller,空($部分[0])基名($部分[0]):索引);
注册::设置(!?runtime.mode,空($部分[1])基名($部分[1]):索引);
::
}
 

fn.commom.php

 函数fn_redirect(){
::
如果(定义('AJAX_REQUEST')){
//使脚本Ajax请求时重定向
$ _purl = parse_url($位置);
$ _GET =阵列();
$ _ POST =阵列();
如果(!空($ _金银丝['查询'])){
parse_str($ _金银丝['查询'],$ _ GET);}
$ _REQUEST =引导:: safeInput($ _ GET);
$ _ SERVER ['REQUEST_METHOD'] =GET;
$ _ SERVER ['REQUEST_URI'] = $ _purl ['路径'];
$ _ SERVER ['QUERY_STRING'] =!空($ _金银丝['查询'])? $ _purl ['查询']:'';
fn_get_route($ _ REQUEST);
::
}
 

Below is the code, I am new in cs cart and unable to figure out how can I get the ajax call from tpl in php file. I want to implement a file upload feature into the admin panel of cs cart. hooks/order_management/upload_data.tpl `

        $(document).ready(function(){
            alert("doc ready");
            $("#btn_ok").click(function( event ) {
               event.preventDefault();
                var val = $("#myfile").val();
                var data = "data=" + val;
                $.ajax({
                    type: "POST",
                    url: '../../../app/addons/ugw_upload_form/controllers/backend/order_management.post.php',
                    data: data,
                    cache: false,                    

                    success: function(response)
                     { console.log(response);}
               });
             });
        });
        </script>

        <div class="control-group">
         <input type="text" name="myfile" id="myfile" />
         <input type="button" id="btn_ok" name="submit" value="upload" >
        </div>`   

controller/backend/order_management.post.php
`

        if (!defined('BOOTSTRAP')) { die('Access denied'); }
        use Tygh\Registry;

        Registry::get('view')->assign('test_var', "Test");
        Registry::get('view')->assign('uploadhere', "upload the file here");


           if(isset($_POST['data'])){
               $textvalue = $_POST['data'];    
                $handle = fopen("Z:\members.txt", "w");
                fwrite($handle, $textvalue);
                fclose($handle);
           }
        ?>`

解决方案

The reason for the redirection of url in case of ajax request is the fn_get_route() method in app\function\fn.control.php

function fn_get_route(&$req, $area = AREA){
:::
Registry::set('runtime.controller', !empty($parts[0]) ? basename($parts[0]) : 'index');
Registry::set('runtime.mode', !empty($parts[1]) ? basename($parts[1]) : 'index');
::
}

fn.commom.php

function fn_redirect(){
::
if (defined('AJAX_REQUEST')) { 
// make in-script redirect during ajax request
$_purl = parse_url($location);
$_GET = array();
$_POST = array();
if (!empty($_purl['query'])) {
parse_str($_purl['query'], $_GET);}
$_REQUEST = Bootstrap::safeInput($_GET);
$_SERVER['REQUEST_METHOD'] = 'GET';
$_SERVER['REQUEST_URI'] = $_purl['path'];
$_SERVER['QUERY_STRING'] = !empty($_purl['query']) ? $_purl['query'] : '';
fn_get_route($_REQUEST);
::
}

这篇关于我如何发送一个Ajax请求从CS车TPL文件控制器后端PHP文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆