2011-11-18 54 views
0

我在JQuery自动完成远程缓存和Zend, 它有点麻烦,它不适用于远程源,PHP远程源返回有效的JSON数据 ,但它只是简单地doesn “T工作,甚至没有使用远程数据源的样本网址:zend框架+ jQuery的自动完成远程不工作

http://jqueryui.com/demos/autocomplete/search.php?term=ga

只与本地JSON工作在js文件

任何帮助将不胜感激!

(更新)代码:

'公共功能fetchpersonbyAction(){$ 本 - > _ helper-> viewRenderer-> setNoRender(真); $ this - > _ helper-> layout-> disableLayout();

if(isset($_REQUEST['tokenValue']) && !empty($_REQUEST['tokenValue'])) { 
     $appPersons = new Application_Model_AppPersonsMapper(); 
     $foundPersons = $appPersons->fetchPersonBy(array('PERSONNAMES', 'PERSONSURNAMES'), '%b%'); 

     $pesonsData = array(); 

     foreach($foundPersons as $foundPerson) { 
      $personLabel = ucwords(strtolower($foundPerson->PERSONNAMES)).' '.ucwords(strtolower($foundPerson->PERSONSURNAMES)); 
      $pesonsData[] = array('id' => $foundPerson->PERSONID, 'label' => $personLabel, 'value' => $personLabel); 
     } 

     echo header('Content-type: application/json'); 
     echo json_encode($pesonsData); 
    }else { 
     echo $this->jsRedirect; 
    } 
}` 

上面的代码是从 “人” 控制器,其返回该动作:

[{ “ID”:1, “标签”: “卡洛斯阿图罗Bucheli Padilla的”, “值”: “Carlos Arturo Bucheli Padilla”},{“id”:2,“label”:“Jhon Albert Doe Ramirez”,“value”:“Jhon Albert Doe Ramirez”}]

我正在使用header -type:application/json'); JS代码是:

'$(函数(){ VAR availableTags = [{ “ID”:1, “标签”: “卡洛斯阿图罗Bucheli Padilla的”, “值”: “卡洛斯阿图罗Bucheli Padilla的” },{“id”:2,“label”:“Jhon Albert Doe Ramirez”,“value”:“Jhon Albert Doe Ramirez”}]; // var availableTags'http://grupster.erp/persons-processor/fetchpersonby';

$("#tags").autocomplete({ 
     source: "http://jqueryui.com/demos/autocomplete/search.php", 
     minLength: 2, 
     select: function(event, ui) { alert(ui.item.id); } 
    }); 
});` 

它与在JS代码,但不能与远程数据源一个简单的数组,我都尝试jQuery的URL和我自己的控制器行动,我的本地

+0

这个狗屎突然停止工作...! – CABP

回答

0

只是一个疯狂的猜测,因为你应该发布相关的代码,让我们知道你想要存档的内容,但是你的url_fopen_wrapper设置为在你的PHP配置中?当此设置关闭时,可能无法从其他域/ https协议中检索数据。也许我完全错了,所以请发布一些代码,试图获取json文件以及创建它的位置。

+0

不知道该配置设置,问题解决了反正......我只是从源网址中删除了域名,它很好地工作,所以感谢您的意见=) – CABP