【发布时间】:2012-01-01 11:30:04
【问题描述】:
我在使用 JQuery 自动完成远程缓存和 Zend 时遇到了一点问题, 它不适用于远程源,php远程源返回有效的json数据 但它根本不起作用,甚至没有使用远程源的示例 url:
http://jqueryui.com/demos/autocomplete/search.php?term=ga
它只适用于js文件中的本地json
任何帮助将不胜感激!
(更新)代码:
`公共函数 fetchpersonbyAction() { $this->_helper->viewRenderer->setNoRender(true); $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;
}
}`
上面的代码是来自“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 和我自己的控制器操作
【问题讨论】:
-
这玩意突然停止工作......!
标签: jquery zend-framework autocomplete