我如何发送一个Ajax请求从CS车TPL文件控制器后端PHP文件? [英] How can I send an ajax request to controller backend php file from tpl file in CS cart?
本文介绍了我如何发送一个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>
< DIV 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请求的重定向在app \功能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屋!
查看全文