Joomla3.x组件中的Ajax';s观点
我正在为Joomla3.x构建一个组件,在处理ajax请求时遇到了一个问题。 源代码可在Github上获得: 我的请求来自Joomla3.x组件中的Ajax';s观点,ajax,model-view-controller,joomla,Ajax,Model View Controller,Joomla,我正在为Joomla3.x构建一个组件,在处理ajax请求时遇到了一个问题。 源代码可在Github上获得: 我的请求来自场馆视图:/com\u jomcity/site/views/vinces/tmpl/default.php <script type="text/javascript"> jQuery(document).ready(function () { jQuery('#main_search_request').keyup(function() {
场馆
视图:/com\u jomcity/site/views/vinces/tmpl/default.php
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('#main_search_request').keyup(function() {
var request_content = jQuery(this).val();
jQuery.get(
// Specify the server URL and the $_GET datas to send
'index.php?option=com_jomcity&task=searchVenues&format=json',
{ search: request_content },
// The server will respond with some data encoded in JSON
function(data){
jQuery('#results').html('');
for (var i = 0; i < data.venues.length; i++) {
var venue = data.venues[i];
console.log(venue);
jQuery('#results').append(
'<div class="grid-item">' +
'<a href="#">' +
'<img src="http://placekitten.com/g/80/80" alt="">' +
'<div>' +
'<div>' +
'<h3>'+venue.name+'</h3>' +
'<span>* * * * *</span>' +
'</div>' +
'<div>Short descrption</div>' +
'</div>' +
'</a>' +
'</div>'
);
}
}
);
});
});
</script>
jQuery(文档).ready(函数(){
jQuery('#main_search_request').keyup(函数(){
var request_content=jQuery(this.val();
jQuery.get(
//指定要发送的服务器URL和$\u GET数据
'index.php?option=com_jomcity&task=searchVinces&format=json',
{搜索:请求内容},
//服务器将使用JSON编码的一些数据进行响应
功能(数据){
jQuery(“#results”).html(“”);
对于(var i=0;i
这个ajax脚本与组件(站点部分)的主控制器进行通信,因此我想知道如何从modelcom\u jomcity/site/models/victions.php
获取值
这个代码可以吗?或者我应该在视图的控制器中处理ajax请求(我不知道如何处理)?感谢@Torreto和@GDP的参与 我最终继续在主控制器中创建一个任务,直接与数据库交换,因此不使用任何模型。我认为应该有一种更好更干净的方法来编写这个ajax调用,所以我愿意接受任何进一步改进的建议 我使用的代码,如果可以帮助某人: 在
/com\u jomcity/site/views/victions/tmpl/default.php
中:
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('#main_search_request').keyup(function() {
var request_content = jQuery(this).val();
jQuery.get(
// Specify the server URL and the $_GET datas to send
'index.php?option=com_jomcity&task=searchVenues&format=json',
{ search: request_content },
// The server will respond with some data encoded in JSON
function(data){
// Clean the #result div between two search results
jQuery('#results').html('');
// Read and display each objects returned in the json response
for (var i = 0; i < data.length; i++) {
var venue = data[i];
jQuery('#results').append(
'<div class="grid-item">' +
'<a href="#">' +
'<img src="http://placekitten.com/g/80/80" alt="">' +
'<div>' +
'<div>' +
'<h3>'+venue.en_name+'</h3>' +
'<span>* * * * *</span>' +
'</div>' +
'<div>Short descrption</div>' +
'</div>' +
'</a>' +
'</div>'
);
}
}
);
});
});
</script>
class JomCityController extends JControllerLegacy
{
/**
* Search in all the venues
* @return string The message to be displayed to the user
*/
public function searchVenues() {
if (isset($_GET['search'])) {
// Get a db connection
$db = JFactory::getDBO();
// Create a new query object
$query = $db->getQuery(true);
// Select all records from the jomcity_venues_items table
// Where the name or the description correspond to the user's search keywords
// Order it by the en_score field
$query
->select('*')
->from('#__jomcity_venues_items')
->where('`local_name` like "%'.$_GET['search'].'%" OR `en_name` like "%'.$_GET['search'].'%" OR `description` like "%'.$_GET['search'].'%"')
->order('en_name ASC');
// Reset the query using our newly populated query object
$db->setQuery((string)$query);
// Load the results as a list of stdClass objects.
$this->venues = $db->loadObjectList();
}
echo json_encode($this->venues);
}
}
您希望从模型中获取价值的位置?此问题/答案可能会帮助您了解如何处理该问题: