public function districts_post($param)
 {
     $districts = array();
     if ($result = District::query()->where([['`id_city`', '=', $param['id']]])->order_by('`name`')->get()) {
         while ($row = $result->fetch_assoc()) {
             $d = array('id' => $row['id'], 'name' => $row['name']);
             array_push($districts, $d);
         }
         $result->free();
     }
     ob_end_clean();
     //var_dump($districts);
     echo json_encode($districts);
     exit;
 }
 public function edit_post($params)
 {
     $msg = array();
     $msg = $this->validate_info($params['fullname'], $params['phone'], $params['id_city'], $params['id_district'], $params['address'], $params['birth']);
     $cities = array();
     if ($result = City::query()->order_by('`name`')->get()) {
         while ($row = $result->fetch_assoc()) {
             $city = new City($row);
             array_push($cities, $city);
         }
         $result->free();
     }
     $districts = array();
     if ($params['id_city'] != '') {
         if ($result = District::query()->where([['`id_city`', '=', $params['id_city']]])->order_by('`name`')->get()) {
             while ($row = $result->fetch_assoc()) {
                 $district = new District($row);
                 array_push($districts, $district);
             }
             $result->free();
         }
     }
     if (sizeof($msg) > 0) {
         $this->render('views/user/edit.php', ['msg' => $msg, 'user' => new User($params), 'cities' => $cities, 'districts' => $districts]);
         return;
     } else {
         $result = User::query(['`id`'])->where([['`email`', '=', "'{$_SESSION['user']}'"]])->get();
         if ($row = $result->fetch_assoc()) {
             $id = $row['id'];
             $user = new User(['id' => $id, 'fullname' => $params['fullname'], 'phone' => $params['phone'], 'id_city' => $params['id_city'], 'id_district' => $params['id_district'], 'address' => $params['address'], 'birth' => date_format(date_create_from_format('d-m-Y', $params['birth']), 'Y/m/d')]);
             if ($user->update()) {
                 ob_end_clean();
                 header('Location:' . Path::go_to('user'));
                 exit;
             } else {
                 array_push($msg, 'Your account is not updated');
             }
             $this->render('views/user/edit.php', ['msg' => $msg, 'cities' => $cities, 'districts' => $districts, 'user' => $user]);
             return;
         }
     }
 }