Joomla模块有一个主文件,xml文件,ajax.php文件,css文件夹,js文件夹和带有default.php文件的tmpl文件夹。
default.php文件有jquery ajax函数。 url参数调用ajax.php文件。此文件是eco或true(即joomla代码 - 已发送或未发送电子邮件)。
jQuery.ajax({
type : 'POST',
url : 'modules/mod_abc/ajax.php',
data : {
varName : zxi,
varEmail : zxj,
varPhone : zxk,
varTime : zxl
},
dataType : 'text',
.............
..............
...............
});
此输出未进入default.php文件。如果我删除定义的(JEXE)行iam从ajax.php文件获取值。
我想将ajax.php文件作为具有已定义(JEXE)行的joomla模块的一部分。在其中我想写joomla的邮件功能
请帮帮我......
答案 0 :(得分:1)
在joomla中调用模块文件,这就是为什么需要'JEXEC'参数,以确定refferer本身是joomla的原因。这意味着,您无法将此代码插入到ajax.php文件中,因为您使用ajax调用它并且不将其包含在joomla中。
解决方案是为您的模块创建一个组件作为“帮助者”。你的ajax调用中的url将指向该组件,因为你可以从任何地方调用它们,你也可以检查JEXE参数。
type : 'POST',
url : 'http://yoursite.com/index.php?option=com_abc',
data : {
varName : zxi,
varEmail : zxj,
varPhone : zxk,
varTime : zxl
},
dataType : 'text',
此方法会将参数传递给com_abc组件,您可以在组件中执行任何操作。如果你打算使用返回值,那么也可以使用format = raw参数,让joomla知道不打印ajax调用的整个页面:
type : 'POST',
url : 'http://yoursite.com/index.php?option=com_abc&format=raw',
data : {
varName : zxi,
varEmail : zxj,
varPhone : zxk,
varTime : zxl
},
dataType : 'text',
答案 1 :(得分:1)
<script>
jQuery(window).load(function(){
var data = {};
display_result_data();
});
function display_map_result_data() {
var ajaxUrl = "modules/mod_mapcontent/submit_form.php";
jQuery.ajax({
type: "POST",
url: ajaxUrl,
data: {category: 'simple'},
dataType : "json",
async : false,
success : function(result){
data = result;
}
});
}
</script>
<?php
/**
* @package Joomla.Site
* @subpackage mod_banners
*
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
$baseurl = JURI::base();
?>
<div id="mapcontent" class="mapcontent">
<div id="map-canvas"></div>
</div>