Joomla:使用jQuery加载php函数

时间:2014-09-17 14:00:14

标签: jquery joomla module

首先,我对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(客户端)之前运行的,所以简单回答这个问题的标题是No .. 但是我必须等待用户输入所需的域名,所以我知道要检查什么。

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

非常感谢您对此的任何想法!

此致 比约

0 个答案:

没有答案