Joomla3.x组件中的Ajax';s观点

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() {

我正在为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() {
      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脚本与组件(站点部分)的主控制器进行通信,因此我想知道如何从model
com\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);
    }
}

您希望从模型中获取价值的位置?此问题/答案可能会帮助您了解如何处理该问题: