[英]How can I send an ajax request to controller backend php file from tpl file in CS cart?
下面是代码,我是cs cart中的新手,无法弄清楚如何从php文件中的tpl获取ajax调用。 我想在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>`
控制器/后端/ 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);
}
?>`
在ajax请求的情况下重定向url的原因是app \\ function \\ fn.control.php中的fn_get_route()方法
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);
::
}
对于cs-cart中的ajax请求,您可以看到: http : //docs.cs-cart.com/4.3.x/core/front-end/ajax.html
例如,您想通过ajax发送数据:
demo.tpl
文件: <form class="cm-ajax" method="post">
<input id="elm_id" type="submit" name="dispatch[your_controller.your_mode]" value="submit" />
</form>
your_controller.php
: if($mode == your_mode){
if (defined('AJAX_REQUEST')) {
// your operation
// return or exit;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.