CakePHP中的国家/州下拉列表
如何使用form helper处理视图中的依赖组合框。例如: 国家选择框(选择国家应过滤掉所选国家的状态) 状态选择框 这应该在Javascript/Jquery等的帮助下实现。我在Cake的核心AJAX助手中遇到了一个同样的例子,但是如果有人能帮我做一个Javascript例子,那就太好了 在views/edit.ctp中感谢CakePHP中的国家/州下拉列表,cakephp,Cakephp,如何使用form helper处理视图中的依赖组合框。例如: 国家选择框(选择国家应过滤掉所选国家的状态) 状态选择框 这应该在Javascript/Jquery等的帮助下实现。我在Cake的核心AJAX助手中遇到了一个同样的例子,但是如果有人能帮我做一个Javascript例子,那就太好了 在views/edit.ctp中感谢 <script type="text/javascript"> $(document).ready(function (){ $('#country').
<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>
和视图/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';
并确保layouts文件夹中有一个干净的ajax.ctp。。。否则,所有的布局代码都将在ajax响应中返回,并且只返回下拉代码 $states=$this->State->find('list',array(
$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>";
“条件”=>array('State.country\u id'=>$codePassed),
'order'=>数组('State.stateName ASC'),
'fields'=>array('id','stateName'),
“递归”=>-1
));
$a='';
$a.=”;
$a.=“选择状态”;
foreach($key=>$value){
$a.=''.$value.'';
}
$a.=”;
@gong提供的解决方案对您有效吗?请确认!您正在控制器中构建HTML,而忽略了专门为此设计的帮助器。这不是好的做法。此外,这根本没有解决这个问题。这个解决方案适用于哪个版本的CakePHP?
$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>";