Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery自动完成mysql zend并且操作/控制器没有响应?_Jquery_Jquery Ui_Zend Framework_Jquery Autocomplete - Fatal编程技术网

jQuery自动完成mysql zend并且操作/控制器没有响应?

jQuery自动完成mysql zend并且操作/控制器没有响应?,jquery,jquery-ui,zend-framework,jquery-autocomplete,Jquery,Jquery Ui,Zend Framework,Jquery Autocomplete,我们在zend中使用jquery autocomplete,并像这样设置我们的操作 public function ajaxautocompleteAction() { $postData = $this->_request->getParams(); $term = $postData['term']; $categoryObj = new Categories(); $result = $categoryObj->searchCategory

我们在zend中使用jquery autocomplete,并像这样设置我们的操作

public function ajaxautocompleteAction()
{
    $postData = $this->_request->getParams();
    $term = $postData['term'];
    $categoryObj = new Categories();
    $result = $categoryObj->searchCategory($term);
    $this->view->result = $result;
}
$("#autotest").autocomplete({
    source: searchUrl,
    minLength: 2
});
视图文件中的javascript如下所示

    $(function() {
        var url = "http://www.domain.com/account/ajaxautocomplete?format=json";
        $( "#autotest" ).autocomplete({
            minLength: 2,
            source: function(request, response){
                var iterm = request.term;
                var url = "http://www.domain.com/account/ajaxautocomplete?format=json";
                $.post( url, {term: iterm},
                function( data ) {
            response(data); });
            }
    });
});
在chrome控制台中,我得到了这个错误

无法加载XMLHttpRequest。访问控制不允许原点允许原点


你知道为什么我们没有从ajax请求中获得结果吗?

看起来domain.com不允许跨域调用


尝试
chrome.exe--禁用web安全性

看起来domain.com不允许跨域调用


尝试
chrome.exe--禁用web安全性

这就是我以前使用jQueryUI的autocomplete和ZF的方式

  • 创造你的行动

    public function ajaxautocompleteAction()
    {
        $term = $this->getRequest()->getParam('term');
        $categoryObj = new Categories();
        $result = $categoryObj->searchCategory($term);
        $this->view->result = $result;
    }
    
  • 将AjaxContext添加到操作中,禁用自动JSON序列化。我跳过了自动序列化,因为对于您的模型来说,表示jQueryUI的automcomplete查找的通常的“标签”/“值”对并不常见

    public function init()
    {
        $this->_helper->ajaxContext->addActionContext('ajaxautocomplete', 'json')
                                   ->setAutoJsonSerialization(false)
                                   ->initContext('json');
    }
    
  • 创建JSON视图(
    views/scripts/account/ajaxautocomplete.JSON.phtml

  • 像这样设置JavaScript

    public function ajaxautocompleteAction()
    {
        $postData = $this->_request->getParams();
        $term = $postData['term'];
        $categoryObj = new Categories();
        $result = $categoryObj->searchCategory($term);
        $this->view->result = $result;
    }
    
    $("#autotest").autocomplete({
        source: searchUrl,
        minLength: 2
    });
    

  • 这就是我以前使用jQueryUI的autocomplete和ZF的方式

  • 创造你的行动

    public function ajaxautocompleteAction()
    {
        $term = $this->getRequest()->getParam('term');
        $categoryObj = new Categories();
        $result = $categoryObj->searchCategory($term);
        $this->view->result = $result;
    }
    
  • 将AjaxContext添加到操作中,禁用自动JSON序列化。我跳过了自动序列化,因为对于您的模型来说,表示jQueryUI的automcomplete查找的通常的“标签”/“值”对并不常见

    public function init()
    {
        $this->_helper->ajaxContext->addActionContext('ajaxautocomplete', 'json')
                                   ->setAutoJsonSerialization(false)
                                   ->initContext('json');
    }
    
  • 创建JSON视图(
    views/scripts/account/ajaxautocomplete.JSON.phtml

  • 像这样设置JavaScript

    public function ajaxautocompleteAction()
    {
        $postData = $this->_request->getParams();
        $term = $postData['term'];
        $categoryObj = new Categories();
        $result = $categoryObj->searchCategory($term);
        $this->view->result = $result;
    }
    
    $("#autotest").autocomplete({
        source: searchUrl,
        minLength: 2
    });
    

  • 我不认为这是答案,我们的所有网站访问者都不可能在chrome上这么做。我不知道://文件与此有什么关系?我们正在从mysql表中获取类别列表,试图通过zend操作将其转换为自动完成。请忘记“file://”,我在前面编辑了答案:)当然,访问者不会安装chrome。您的web服务器不允许此类请求。尝试在响应标题中添加类似于
    标题(“访问控制允许来源:http://domain.com“
    我不认为这是答案,我们的所有网站访问者都不可能在chrome上这样做。我不知道://文件与此有什么关系?我们正在从mysql表中获取类别列表,试图通过zend操作将其转换为自动完成。请忘记“file://”,我在前面编辑了答案:)当然,访问者不会安装chrome。您的web服务器不允许此类请求。尝试在响应标题中添加类似于
    标题(“访问控制允许来源:http://domain.com“”
    编辑我们的url到非wwww,这是他们在zend中的设置开始工作的方式,我在chrome控制台中看到“XHR完成加载:…”但没有选择列表chrome控制台显示XHR完成加载:“它应该有?term=asdf作为我开始输入的字母,但它没有接收到,有什么想法吗?编辑我们的url到非wwww,这是他们在zend中的设置开始工作的方式,我在chrome控制台中看到“XHR完成加载:…”但没有选择列表chrome控制台显示XHR完成加载:“它应该有?term=asdf作为我开始键入的字母,但它没有拾取这些字母,有什么想法吗?谢谢,您能够从数据库中获取行ID并使用该名称/ID设置输入吗?您是否使用任何代码对其进行验证,以便用户不会输入一些不是来自db表的值?在这种情况下,我建议使用带有select元素的标准Zend表单,并使用[Selected plugin]对其进行增强()。谢谢,您是否能够从数据库中获取行ID,并使用该名称/ID设置输入?您是否使用任何代码验证它,以便用户不会输入一些不是来自db表的值?在这种情况下,我建议使用带有select元素的标准Zend表单,并使用[Selected plugin]对其进行增强()