1

Joomla 模块有一个主文件、xml 文件、ajax.php 文件、css 文件夹、js 文件夹和带有 default.php 文件的 tmpl 文件夹。

default.php 文件具有 jquery ajax 功能。url 参数正在调用 ajax.php 文件。此文件是真或假(即;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)行,我会从 ajax.php 文件中获取值。

我希望 ajax.php 文件作为 joomla 模块的一部分,并定义(JEXE)行。在里面我想写joomla的邮件功能

请帮帮我...

4

2 回答 2

1

模块文件在 joomla 中被调用,这就是为什么需要“JEXEC”参数来确定引用者是否是 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',
于 2012-05-11T11:49:58.183 回答
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>
于 2013-12-20T06:25:57.663 回答