我在使用JQuery自动完成远程缓存和Zend时遇到了一点麻烦,它不与远程源工作,PHP远程源返回有效的json数据但是它根本不起作用,甚至没有使用远程源的示例url:
http://jqueryui.com/demos/autocomplete/search.php?term=ga它只对js文件中的本地json有效
任何帮助将不胜感激!
(更新)代码:
` ` ` ` ` ` ` fetchpersonbyAction ` ` {$ this -> _helper> viewRenderer -> setNoRender(真正的);$ this -> _helper ->布局-> 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;
}
}`
上面的代码是来自"persons"控制器的一个动作,它返回如下内容:
[{"id":1,"label":"Carlos Arturo Bucheli Padilla","value":"Carlos Arturo Bucheli Padilla"},{"id":2,"label":"Jhon Albert Doe Ramirez","value":"Jhon Albert Doe Ramirez"}]
我使用header('Content-type: application/json');js代码是:
' $(函数(){var availableTags = [{"id":1,"label":"Carlos Arturo Bucheli Padilla","value":"Carlos Arturo 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和我自己的控制器-action在我的localhost
只是一个大胆的猜测,因为你应该张贴相关的代码,给我们一个想法,你试图存档,但你的url_fopen_wrapper设置为在你的PHP配置?当此设置关闭时,它可能无法从其他域/https协议检索数据。也许我完全错了,所以请张贴一些代码,你试图获取json文件,并在哪里创建它。