양식 헬퍼를 사용하여 뷰의 종속 콤보 상자를 처리하는 방법은 무엇입니까? 예를 들면 :CakePHP의 국가/주 드롭 다운
국가 선택 상자 이것은 내가에 대한 예를 통해 온 자바 스크립트/JQuery와 등의 도움으로 발생해야 상자
국가 선택 (선택한 국가의 상태를 필터링해야 국가를 선택) Cake의 핵심 AJAX 도우미와 동일하지만 누군가 Javascript 예제를 도울 수 있다면 매우 좋을 것입니다.
감사
뷰에서양식 헬퍼를 사용하여 뷰의 종속 콤보 상자를 처리하는 방법은 무엇입니까? 예를 들면 :CakePHP의 국가/주 드롭 다운
국가 선택 상자 이것은 내가에 대한 예를 통해 온 자바 스크립트/JQuery와 등의 도움으로 발생해야 상자
국가 선택 (선택한 국가의 상태를 필터링해야 국가를 선택) Cake의 핵심 AJAX 도우미와 동일하지만 누군가 Javascript 예제를 도울 수 있다면 매우 좋을 것입니다.
감사
뷰에서/edit.ctp
<script type="text/javascript">
$(document).ready(function(){
$('#country').change(function() {
$('#state').load('/controller/getStates/'+$(this).val());
});
});
</script>
<select id="country" name="country">
<option value="1">Greece</option>
</select>
<span id="state">
<select name="state">
<option value=""></option>
</select>
</span>
및 controller.php에서이
function getStates(int countryID){
$this->set('selectbox',
$this->State->find('list',array('conditions'=>'State.Country_id='.$countryID,
'fields;=>array('description')));
}
및 뷰/getStates.ctp
<select name="state">
<option value=""></option>
<?php
foreach($selectbox as $option)
echo '<option value="'.$option['id'].'">'.$option['description'].'</option>'."\n";
?>
</select>
나는 희망 뭔가 잊지 마세요
@ gong의 솔루션은 잘 작동합니다. 그렇지 않으면 모든 레이아웃 코드가 아약스 응답에 반환 될뿐만 아니라 단지 드롭 다운 코드 ... 컨트롤러의
$this->layout = 'ajax';
및 레이아웃 폴더에 깨끗한 ajax.ctp이 있는지 확인 : 그냥 추가해야합니다 !
$states = $this->State->find('list', array(
'conditions' => array('State.country_id' =>$codePassed),
'order'=>array('State.stateName ASC'),
'fields' =>array('id','stateName'),
'recursive' => -1
));
$a='';
$a.= "<select name=\"state\">";
$a.= "<option value=\"\">Select state</option>";
foreach($states as $key=>$value){
$a.="<option value=\"$key\">".$value."</option>";
}
$a.="</select>";
당신은 컨트롤러에서 HTML을 만들고, 정확히 그렇게하도록 설계된 도우미를 무시하고 있습니다. 이것은 좋은 습관이 아닙니다. 또한,이 질문에 전혀 해결되지 않습니다. –
이 솔루션은 근무 @gong에서 제공 했습니까? 확인해주세요! – jagamot