清风徐来
知是行之始,行是知之成

Kohana 与JQUERY实现连动

PHP jQuerykohana 约 1 分钟

控制器 /**

  • ajax加载城市分类

*/ public function load_cities($id) { $id = (int) $id; if (!$id) { exit("{result:0,msg:‘错误的城市编号’}"); } $cities = ORM::factory(‘city’); $cats = $cities->where(‘province_id’,$id)->select_list(‘id’,’name’); if (!count($cats)) { $cats = array(); } ksort($cats); exit("{result:1,msg:".json_encode($cats)."}"); }

public function index() { //生成省市下拉列表 $provinces = ORM::factory(‘province’)->select_list(‘id’,’name’); $provinces[’’] = ‘未选择’; ksort($provinces); $this->template->provinces = $provinces; if ($data[‘province_id’]) { $cities = ORM::factory(’city’)->where(’province_id’,$data[‘province_id’])->select_list(’id’,’name’); } $cities[’’] = ‘未选择’; ksort($cities); $this->template->cities = $cities; $this->add_script(‘home/js/company/add.js?3’); } view

jquery $(function() { // ajax载入城市 $("#province_id").change(function() { var province_id = $(this).val(); if (province_id != 0) { $.ajax({ type : "POST", cache : true, url : "/admin/company/load_cities/" + province_id, dataType : "json", success : function(msg) { if (msg.result) { $("#city_id")[0].options.length = 1; for (var i in msg.msg) { $("#city_id")[0].options.add(new Option(msg.msg[i],i)); } } else { alert("操作失败," + msg.msg); } } }); } else { $("#city_id")[0].options.length = 1; } });

});