joomla模块中的Ajax url参数

时间:2012-05-11 08:51:16

标签: jquery ajax url joomla module

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的邮件功能

请帮帮我......

2 个答案:

答案 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>