그 밖에 무엇을해야할지 모르므로이 질문을 게시하고 있습니다. 젠드 (Zend)에서 비슷한 질문을 보았습니다. 그러나 받아 들여지는 답변은 단순히 나를 위해 일하지 않습니다.ZendX 라이브러리가없는 Zend Framework의 Jquery 자동 완성
환경 : 젠드 프레임 워크 1.12 JQuery와 : JQuery와 - ui.css에 대한 1.10.3, JQuery와-1.9.1.js 및 1.10.3 JQuery와 - ui.js
나는 기본 기능 예제를 사용
jquery API 문서 중 모든 것이 부드럽고 놀라운 기능을합니다. 문제는 내 컨트롤러의 "자동 완성"작업에 연결되는 URL을 소스로 배치 할 때 발생합니다. 내 컨트롤러는 그래서 응답, 적외선은 JSON 형식으로 응답하지만, 일이, 좋은 않습니다 : 그것은 미치게 키 'JSON'과 1의 배열, 내부에 모든 것을 배치,{"json":[{"label":"John-1","value":"John"},{"label":"Jay","value":"Jay-1"},{"label":"Lusi","value":"Lusi-1"}]}
그래서 당신이 볼, Jquery가 이해하지 못하기 때문에 jquery는 데이터가있는 배열 만 찾고 싶어합니다. 그래서 나는 그것이 작동하지 않는 이유를 이해하지만, 나는 그것 (나는 php, zend 및 javascript에 익숙하지 않다)을 둘러 보는 방법을 모른다. viewscripts 레이아웃 렌더링 중지 JSON 같은 뷰에 전달하는 정보를 전송하는 제어기를 들어
, I는 초기화() 메소드에 switchContext 헬퍼를 사용 여기public function init() {
$contextSwitch = $this->_helper->getHelper('contextSwitch');
$contextSwitch->addActionContext('autocomplete', 'json')
->initContext();
}
가 autocompleteAction이다
public function autocompleteAction()
{
$autocomplete_data=array(
array('label'=>'John-1', 'value'=>'John'),
array('label'=>'Jay', 'value'=>'Jay-1'),
array('label'=>'Lusi', 'value'=>'Lusi-1')
);
//echo Zend_Json::encode($autocomplete_data);
$this->view->json= $autocomplete_data;
}
보시다시피 전송 된 모든 자동 완성 정보의 데이터를 "json"으로 설정하는 이유는보기로 전달되는 변수의 이름입니다. (json을 "lala"라는 변수 이름으로 변경하여 테스트했으며, URL을 통해 액세스 할 때 배열의 키는 "lala"와 같이 "lala"였습니다 : [{ "label": "John-1", " 값 ":"John "} ....
또한 json_encode() (Zend_Json :: encode()가 사용하는 것임)를 사용하여 시도해 보았습니다. 그리고이를 반향 출력하여 전송됩니다.
[][{"label":"John-1","value":"John"},{"label":"Jay","value":"Jay-1"},{"label":"Lusi","value":"Lusi-1"}]
난 그와 함께 데이터에 액세스하는 방법을 알고하지는
사람이 단순히 배열 [{ "라벨"보내는 방법을 알고 있나요 :. "뭔가", "값을": "뭔가를 "} ...] 그 것처럼?
또는 "소스 :"응답을 조작 할 수있는 방법을 아는 사람은 내 컨트롤러가 응답하는 모든 것을 읽습니다. -> 응답 [ 'json'] ¿?
편집
좋아, 내가 뭔가에 나는 생각합니다. jquery에 대한 API 문서는 this example이며, 소스에서 resposne을 조작하여 원하는대로하고 있다고 생각합니다.
는 (데이터) CONSOLE.LOG에 도착$("#profesor").autocomplete({
source:function(response) {
$.ajax({
url: url,
dataType: "json",
success: function(data) {
console.log(data);
response(data['json']);
}
});
},
minLength:1
});
는 '데이터'내 컨트롤러가 보내는 응답 (배열에서 'JSON'키를 사용하여 하나입니다 그래서 나는 다음 그것을 해내 시도). 멋진, 그래서해야 할 일은 자동 완성에 대한 응답을 데이터 [ 'json']로 설정하는 것입니다. 그러나 일단 그 행에 도달하면 ... 다음과 같은 예외가 발생합니다 : "잡히지 않은 유형 오류 : 객체가 함수가 아닙니다." . 그게 무슨 뜻 이죠? 그것은 자동 응답의 "응답"기능에 액세스 할 수 없습니까?
끝내기 편집 미리 감사드립니다.