使用Ajax在Joomla中加载组件数据

时间:2012-12-12 20:07:01

标签: php jquery mysql ajax joomla

我正在切换我的组件以使用AJAX来制作更漂亮/更简单/更快/更好的分页和内容加载。

我正试图超越第一部分,它只是显示来自mySQL / PHP查询的内容。

由于我已经构建了查询,我想为什么要重新发明轮子? ......但如果我知道一个圆圈看起来像什么就可以了,可以这么说。

以下是我尝试使用的基本AJAX/jQuery函数:

$.ajaxSetup ({  
    cache: false  
});  

var loadUrl = "http://www.mgoode.com/index.php";  

$("#load_basic").click(function(){  
   $("#result").load(loadUrl, "option=com_mls&view=list&lprice=100000&pstart=5&plimit=5");  
});

我希望将来,当我实现分页时,我可以改变URL参数中的变量,而不必重新做一堆东西。

我有一个JSFiddle HERE我很感激任何建议。

提前致谢!

编辑:所以,我只记得我的所有元素创作都发生在模板本身。所以,难怪JSFiddle只会显示空白。很抱歉打扰你们。

1 个答案:

答案 0 :(得分:1)

将Joomla与AJAX结合使用非常棘手,但如果正确构建文件,则可以正常工作

由于您无法向我们提供您的PHP,我将通过您最近的修改。 我的目标是在模块中使用com_mycomponent并从db

中检索一些数据

模块的default.php(modules / mod_mymodule / tmpl / default.php)看起来像这样

<form id="myform" name="myform">
<label>Push this to load some data</label>
<input type="text" id="myid" name="myid"/>
<a href="#" id="pushme">Push me</a>
<div id="component data"></div>
</form>?

获取ID以进行简单的SQL查询是一种非常好的形式

在我的组件上我必须修改controller.php(component / com_mycomponent / controller.php)

<?php
defined('_JEXEC') or die;
class MyComponentController extends JControllerLegacy
{ 
public function myFunction()
    {
         $id = JRequest::getString('myid', '', 'method', JREQUEST_ALLOWRAW);
         //grab the id
         $db->setQuery('SELECT username FROM #__mytable WHERE id='.$db->Quote($id));
         //fetch data
         $json['returned'] = $result->name;
     echo(json_encode($json));
        }
}
?>

上面的代码使用已发布的ID进行查询并返回一些数据 至少但不是我的jQuery函数

$('a#pushme').click(function(){ 
$.ajax({
        url: 'index.php?option=com_users&format=raw&task=loginme',
        data: dataString,
        dataType: 'json',
        type: 'POST',
        success: function(data) {

       if(data!=null)   {
});