gpt4 book ai didi

ajax - 将 AJAX 放入 Joomla 模块中

转载 作者:行者123 更新时间:2023-12-02 05:33:32 26 4
gpt4 key购买 nike

我为我的网站制作了一个基本的 Joomla 模块作为喊话箱。但我想将 AJAX 放入其中(我知道 JED 上已经存在一个与 AJAX 类似的模块,但这更多的是我学习 AJAX 如何在 Joomla 模块中工作的项目)。

重定向到新 php 文件的常见 AJAX 内容显然不起作用,因为该文件不会被定义为

   defined('_JEXEC') or die('Restricted access');

将在新页面中失败。据我在 Joomla Docs 上读到的内容,将 _JEXEC 定义为等于 1(正如我在 SO 上读过的几篇文章一样)是一种安全风险,因为它提供了进入网站的入口点。

方式other shoutbox module我看到确实是指向 helper.php 文件中的一个函数。这对我来说很有意义,因为这是通常应该存储所有函数的地方。但是我不清楚该模块如何通过 onSubmit() (或相关)命令访问 helper.php 文件,并希望有人能够对此有所了解。

我实际上不需要任何特定于我的shoutbox模块的东西 - 这更多的是如何在Joomla模块中获取AJAX功能以及如何安排它的问题

最佳答案

另外两个都走在正确的轨道上,您需要记住,当您进行 AJAX 调用时,您无法直接访问 Joomla 中的 php 文件。因此,最好调用您的模块。在这种情况下,让模块检查 POST 或 URL 中的变量。

我是 JQuery 的 ajax 的忠实粉丝,它比构建 Shotbox 的人使用的方法更加独立。

$( "#addShout" ).click( function(event, ui) {
$.ajax({
type: 'GET',
url: "<?php echo JURI::base() . "index.php?option=mod_mymodule&task=getCustomerJson&selectedCustomer="?>" + encodeURIComponent(value),
success:function(data){
$('#shouts').append(data);
},
error:function(){
$('#errors').html('<p class="error"><strong>Oops!</strong> Try that again in a few moments.</p>');
}
});
});

然后正如我在给 Valentin 的评论中提到的:

$task = JRequest::getVar('task'); 
if($task == "getCustomerJson"){mySuperHelper::getCustomerJson();}

仅当变量存在时才调用必要的函数。

为了解释部分过程,它有点像这样:

  1. 如果 POST 或 URL 中没有变量,它只会按照 Joomla 期望的方式显示模块。
  2. 如果检测到变量,则调用该方法将其添加到数据库中,并调用 javascript 函数将其添加到显示中。也防止正常显示的情况发生。

您引用的模块非常有趣。主文件引用的辅助函数执行模型通常在 MVC 中处理的操作,而 Javascript 也差不多。如果您确实想了解它是如何工作的,您确实需要深入研究 fatAjax.js 文件,因为它包含所有 AJAX 并设置 mod_shoutbox.php 监听的变量。

关于ajax - 将 AJAX 放入 Joomla 模块中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13446333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com