2012-12-12 26 views
0

我正在切換組件以使用AJAX來製作更漂亮/更簡單/更快/更好的分頁和內容加載。使用Ajax在Joomla中加載組件數據

我想通過第一部分,它只是顯示從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

使用Joomla與AJAX的是一個節拍棘手,但如果你組織你的文件工作正常,右

既然你不能向我們提供您的PHP我會通過你,我做了一個最近的修改。 我的目標是從DB

我的模塊(模塊/ mod_mymodule/TMPL /如default.php)如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>? 

這是一個模塊內使用com_mycomponent和檢索一些數據一個漂亮的形式抓住一個ID做一個簡單的SQL查詢

在我的部分,我不得不修改Controller.php這樣(分量/ 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) { 
}); 
+0

什麼我希望做的是** 1)**保持當前的MVC過程完整,** 2)**在顯示查詢數據的模板文件夾中創建一個PHP頁面,** 3)**創建一個AJAX函數,該函數運行帶有特定mySQL參數的URL並將其放入元素中。我不知道這是否是一種標準/好方法,但我希望它能夠工作。 – Plummer

+0

正如我所看到的,您正嘗試從com_mls的函數中檢索內容。你打算如何在你的模板文件夾中創建一個頁面? – Theodore

+0

我希望我可以在tmpl文件夾中創建一個「content.php」文件,該文件夾將數組中的項目放入可讀的html中。即'foreach($ array爲$ key => $ value){echo「

" . $value['city'] . "
」;}'。這個腳本然後由AJAX腳本運行,AJAX腳本在用戶交互上運行。所以它會去'USER-> AJAX - >「content.php」 - > AJAX-> HTML-> USER',如果這樣做有道理。 – Plummer