Joomla:使用jQuery加载php函数

Joomla:使用jQuery加载php函数,jquery,joomla,module,Jquery,Joomla,Module,首先,我对jQuery不是很熟悉 我正在为我的Joomla网站构建一个域检查模块。 基本php模块工作得很好,但是在提交表单(带有域名)后,页面将重新加载以显示结果 由于模块必须检查许多whois服务器,因此需要一些时间。我决定查看jQuery以加载结果,这样我可以显示一个漂亮的加载程序,用户知道网站正在检查 我的jQuery: jQuery.noConflict(); jQuery(document).ready(function() { jQuery('#domaincheckbutt

首先,我对jQuery不是很熟悉

我正在为我的Joomla网站构建一个域检查模块。 基本php模块工作得很好,但是在提交表单(带有域名)后,页面将重新加载以显示结果

由于模块必须检查许多whois服务器,因此需要一些时间。我决定查看jQuery以加载结果,这样我可以显示一个漂亮的加载程序,用户知道网站正在检查

我的jQuery:

jQuery.noConflict();

jQuery(document).ready(function() {
  jQuery('#domaincheckbutton').click(function(event){
    event.preventDefault();  
    jQuery('#domainsearch').hide();
    jQuery('#preloader').show();
    jQuery.get("/modules/mod_s5_domain_check/domaincheck.php",
    {
            domainname: jQuery('#domainname').val()
    },
    function(data, textStatus)
    {
            jQuery('#domainresult').html(data);
            jQuery('#preloader').hide();
            jQuery('#resultcontainer').show();
            jQuery('#domainsearch').show();
    }).fail(function () {
         alert('There was an error collecting domain data, please report this to an administrator.');
    });
  });
});
上面的jQuery按预期工作,显示加载程序并从domaincheck.php文件获取结果。。 问题是模块参数没有加载到此domaincheck.php中。我认为这是因为php文件不再在模块范围内

我尝试将以下内容添加到domaincheck.php中:

// Get Joomla! framework
define( '_JEXEC', 1 );
define( '_VALID_MOS', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../' ));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$user =& JFactory::getUser();
$session =& JFactory::getSession();

jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModule('mod_s5_domain_check');
$moduleParams = new JRegistry();
$moduleParams->loadString($module->params);
但这不起作用,我试图回应一些参数,但它们都是空的。 除此之外,它开始看起来一团糟(

我希望有一个解决方案,可以在“mymodule/helper.php”文件中使用php函数。 但是如何与jQuery一起实现这一点呢? 我知道php(服务器端)是在jQuery(客户端)之前运行的,所以这个问题的标题的简单答案是否定的。。 但是我必须等待用户输入所需的域名,这样我才知道要检查什么

如何使用jQuery等待php函数进行域检查,然后显示结果

非常感谢您对这方面的任何想法

问候,,
Bjorn

离题:代替
jQuery(document).ready(function(){
),做速记
jQuery(function($){
,将
$
作为参数传递,并在其中使用别名
$
,而不是
jQuery
。节省了不少字符。您是否尝试在
.get()上使用
.done()
?那当然是空的,因为您加载的模块文件实际上没有分配到任何页面,所以模块参数还没有设置。您只是加载了文件和joomla framework。您的问题可以解决,但我需要您想要实现的详细信息,以便我可以帮助您通过alternet方式实现。您正在使用此文件吗?@isherwood:Yep,你对$alias很了解。我还注意到,计划在它工作时进行一些代码清理。@Salilomin:不确定你对第一句话的意思。在模块php文件中,我使用$buttontext=$params->get('buttontext','');来获取参数。对于'external'php文件,我使用$buttontext=$moduleParams->get('buttontext','');。注意$moduleParams而不是$params。。我尝试在require框架和Jmodulehelper块之后获取这些参数。在许多如何在外部php文件中加载模块参数中解释了此解决方案。但对我不起作用。正如我提到的,我宁愿不使用单独加载框架的外部文件。感谢psi-4ward链接