gpt4 book ai didi

php - 如何在cakephp中进行级联

转载 作者:行者123 更新时间:2023-11-29 20:11:57 25 4
gpt4 key购买 nike

我想在 cakephp 中进行级联。我正在创建城市经理,其中有两个区域和州作为下拉列表。如果我选择区域,那么状态应该根据所选区域来。请帮助我模型 View 和 Controller 的代码应该是什么。我是 cakephp 的新手。城市表如下



如果不存在“城市”则创建表(
`id` int(11) NOT NULL,
`zone_id` int(11) NOT NULL,
`state_id` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`代码` varchar(255) NOT NULL,
`total_sample` int(11) NOT NULL,
`population` int(11) NOT NULL,
`is_active`tinyint(1) NOT NULL,
“创建”日期时间不为空,
‘修改’日期时间不为空
) ENGINE=InnoDB AUTO_INCRMENT=2 默认字符集=latin1;

--
-- 转储表“cities”的数据
--

插入“城市”(“id”、“zone_id”、“state_id”、“name”、“code”、“total_sample”、“population”、“is_active”、“created”、“modified”)值
(1, 2, 2, '阿瓦迪', '15018', 10, 100, 1, '2016-10-03 00:00:00', '2016-10-03 00:00:00');

请帮助我编写 Controller 、 View 和模型的代码。

最佳答案

您可以通过两种方式做到这一点

  1. 使用Chained JavaScript 库。这样你就必须格式化下拉菜单。为此,您可以关注 This Tutorial
  2. 根据选择的区域和州使用 Ajax 请求

对于选项 2:Html

echo $this->Form->input('zone_id', ['options' => $zons, 'empty' => '','id'=>'zoneDropdown']);
echo $this->Form->input('state_id', ['options' => $state, 'empty' => '','id'=>'stateDropdown']);
echo $this->Form->input('city', ['options' => [], 'empty' => '','id'=>'cityDropdown']);

Html 的 Ajax 脚本

$('#zoneDropdown, #stateDropdown').on('change', function (evt) {
ZONE = $("#zoneDropdown").val();
STATE = $("#stateDropdown").val();
$.ajax({
type: "GET",
url: baseURL+"cities/getCitiesOptions/"+ZONE+"/"+STATE,
dataType: "json",
success : function(returnData) {
$("#cityDropdown").val(returnData);
}
});
});

以及 Controller 功能需要添加

 Public function getCitiesOptions($zone_id=null, $state_id=null){
$conditions = [];
if (!empty($zone_id)) {
$conditions['Cities.zone_id'] = $zone_id;
}
if (!empty($state_id)) {
$conditions['Cities.state_id'] = $state_id;
}

$cities = $this->Cities->find('all',['conditions'=>$conditions])->all()->toArray();
// make Options for dorpdown
$html = '';
foreach ($cities as $key => $value) {
$html .= '<option value="'.$value['code'].'">'.$value['name'].'</option>';
}
return $html;
}

关于php - 如何在cakephp中进行级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40035315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com