@ -0,0 +1,13 @@ |
|||||
|
# DB_CONNECTION=mysql |
||||
|
# DB_HOST=db-104.coowo.com:3306 |
||||
|
# DB_PORT=3306 |
||||
|
# DB_DATABASE=appwms |
||||
|
# DB_USERNAME=masadaroot |
||||
|
# DB_PASSWORD=x6h5E5p#u8y |
||||
|
|
||||
|
DB_CONNECTION=mysql |
||||
|
DB_HOST=localhost |
||||
|
DB_PORT=3306 |
||||
|
DB_DATABASE=appwms |
||||
|
DB_USERNAME=root |
||||
|
DB_PASSWORD= |
@ -0,0 +1,59 @@ |
|||||
|
<?php |
||||
|
|
||||
|
class CreateComboNo{ |
||||
|
private $comboarr = [ |
||||
|
'week'=>'BW002', |
||||
|
'month'=>'EM002', |
||||
|
'quarter'=>'EQ002', |
||||
|
'half'=>'HY002', |
||||
|
'year'=>'EY002' |
||||
|
]; |
||||
|
private $bwarr = [ |
||||
|
'week','month','week','month','week','quarter', |
||||
|
'week','month','week','month','week','half', |
||||
|
'week','month','week','month','week','quarter', |
||||
|
'week','month','week','month','week','year' |
||||
|
]; |
||||
|
private $emarr = [ |
||||
|
'month','month','quarter','month','month','half', |
||||
|
'month','month','quarter','month','month','year' |
||||
|
]; |
||||
|
private $combo; |
||||
|
private $startdate; |
||||
|
private $enddate; |
||||
|
public function __construct($combo, $startdate, $enddate){ |
||||
|
$this->combo = $combo; |
||||
|
$this->startdate = $startdate; |
||||
|
$this->enddate = $enddate; |
||||
|
} |
||||
|
public function getComboNo(){ |
||||
|
$comboarr = (array) $this->combo === 'bw' ? $this->bwarr : $this->emarr; |
||||
|
|
||||
|
$startdate = new DateTime($this->startdate); |
||||
|
$enddate = new DateTime($this->enddate); |
||||
|
|
||||
|
$interval = date_diff($startdate, $enddate); |
||||
|
|
||||
|
$months = $interval->y * 12 + $interval->m; |
||||
|
$months = $this->combo === 'bw' ? $months*2 : $months; |
||||
|
|
||||
|
$newarr = []; |
||||
|
$idx = 0; |
||||
|
$ori_first_month = date('m', strtotime($this->startdate)); |
||||
|
$first_day = date('Y-m-d', strtotime($this->startdate. ' + 3 days')); |
||||
|
$new_first_month = date('m', strtotime($first_day)); |
||||
|
if($ori_first_month != $new_first_month){ |
||||
|
$first_day = date('Y-m-t', strtotime($this->startdate)); |
||||
|
} |
||||
|
$scheduleDate = new DateTime($first_day); |
||||
|
for ($i = 0; $i < $months; $i++){ |
||||
|
$newarr[] = [$this->comboarr[$comboarr[$idx]], $scheduleDate->format("Y-m-d")]; |
||||
|
$idx ++; |
||||
|
$scheduleDate = $startdate->modify("+1 month"); |
||||
|
if($idx >= count($comboarr)){ |
||||
|
$idx = 0; |
||||
|
} |
||||
|
} |
||||
|
return json_encode($newarr); |
||||
|
} |
||||
|
} |
@ -0,0 +1,40 @@ |
|||||
|
<?php |
||||
|
require_once('../conn.php'); |
||||
|
if(isset($_GET['contractno']) && $_GET['contractno']!=''){ |
||||
|
try{ |
||||
|
$contractno = $_GET['contractno']; |
||||
|
$sql_str = "SELECT con_maintance_examine_apply.*, con_maintance_examine_clear.* FROM con_maintance_examine_apply |
||||
|
JOIN con_maintance_examine_clear on con_maintance_examine_apply.apply_key=con_maintance_examine_clear.apply_key |
||||
|
WHERE con_maintance_examine_apply.vol_no = :vol_no ;"; |
||||
|
$sql_str = "SELECT * FROM con_maintance_examine_apply WHERE vol_no = :vol_no ORDER BY create_at DESC;"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':vol_no', $contractno); |
||||
|
$stmt->execute(); |
||||
|
$contract= $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
|
||||
|
if(empty($contract)){ |
||||
|
echo false; |
||||
|
exit; |
||||
|
} |
||||
|
$apply_key = $contract['apply_key']; |
||||
|
$sql_str = "SELECT * FROM con_maintance_examine_clear WHERE apply_key = :apply_key"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':apply_key', $apply_key); |
||||
|
$stmt->execute(); |
||||
|
$elevators= $stmt->fetchAll(PDO::FETCH_ASSOC); |
||||
|
$count = COUNT($elevators); |
||||
|
$contract['elevators'] = $elevators; |
||||
|
$contract['num'] = $count; |
||||
|
|
||||
|
$contractResponse = json_encode($contract); |
||||
|
|
||||
|
// 設定回應標頭為 JSON |
||||
|
header('Content-Type: application/json'); |
||||
|
|
||||
|
// 將 JSON 回應返回給客戶端 |
||||
|
echo $contractResponse; |
||||
|
// echo json_encode($contractResponse); |
||||
|
}catch (PDOException $e ){ |
||||
|
die("ERROR!!!: ". $e->getMessage()); |
||||
|
} |
||||
|
} |
@ -0,0 +1,383 @@ |
|||||
|
<?php |
||||
|
require_once("../conn.php"); |
||||
|
include_once("./getFacilityNo.php"); |
||||
|
include_once("./getComboNo.php"); |
||||
|
ini_set ( 'date.timezone' , 'Asia/Taipei' ); |
||||
|
if(isset($_POST["contractno"]) && $_POST["contractno"] != "") { |
||||
|
try{ |
||||
|
$created_at = date('Y-m-d H:i:s'); |
||||
|
$contractno = !empty($_POST['contractno'])? $_POST['contractno'] : null; |
||||
|
$total_price = !empty($_POST['total_price']) ? $_POST['total_price'] : null; |
||||
|
$vat = !empty($_POST['vat']) ? $_POST['vat'] : null; |
||||
|
$mtype = !empty($_POST['mtype']) ? $_POST['mtype'] :null; |
||||
|
$opendoor = !empty($_POST['opendoor']) ? $_POST['opendoor']: null; |
||||
|
$phone = !empty($_POST['phone']) ? $_POST['phone'] : null; |
||||
|
$email = !empty($_POST['email']) ? $_POST['email'] : null; |
||||
|
$mworker = !empty($_POST['mworker']) ? $_POST['mworker'] : null; |
||||
|
$mcycle = !empty($_POST['mcycle']) ? $_POST['mcycle'] : null; |
||||
|
$salesman = !empty($_POST['salesman']) ?$_POST['salesman'] : null; |
||||
|
$contract_begin_date = !empty($_POST['contract_begin_date']) ? $_POST['contract_begin_date'] : null; |
||||
|
$contract_end_date = !empty($_POST['contract_end_date']) ? $_POST['contract_end_date'] : null; |
||||
|
$address = !empty($_POST['address']) ? $_POST['address'] : null; |
||||
|
$area = !empty($_POST['area']) ? $_POST['area'] : null; |
||||
|
$customer = !empty($_POST['customer']) ? $_POST['customer'] : null; |
||||
|
$partyA = !empty($_POST['partyA']) ? $_POST['partyA'] : null; |
||||
|
$partyAaddress = !empty($_POST['partyAaddress']) ? $_POST['partyAaddress'] : null; |
||||
|
$partyAphone = !empty($_POST['partyAphone']) ? $_POST['partyAphone'] : null; |
||||
|
$partyAemail = !empty($_POST['partyAemail']) ? $_POST['partyAemail'] : null; |
||||
|
$user_id = !empty($_POST['user_id']) ? $_POST['user_id'] : null; |
||||
|
$user_name = !empty($_POST['user_name']) ? $_POST['user_name'] : null; |
||||
|
$spec = !empty($_POST['spec']) ? $_POST['spec'] : null; |
||||
|
$weight = !empty($_POST['weight']) ? $_POST['weight'] : null; |
||||
|
$numberofpassenger = !empty($_POST['numberofpassenger']) ? $_POST['numberofpassenger'] : null; |
||||
|
$numberofstop = !empty($_POST['numberofstop']) ? $_POST['numberofstop'] : null; |
||||
|
$numberoffloor = !empty($_POST['numberoffloor']) ? $_POST['numberoffloor'] : null; |
||||
|
$speed = !empty($_POST['speed']) ? $_POST['speed'] : null; |
||||
|
$takecertificatedate = !empty($_POST['takecertificatedate']) ? $_POST['takecertificatedate'] : null; |
||||
|
$maintainance = !empty($_POST['maintainance']) ? $_POST['maintainance'] : null; |
||||
|
$licensedate = !empty($_POST['licensedate']) ? $_POST['licensedate'] : null; |
||||
|
$latitude = !empty($_POST['latitude']) ? $_POST['latitude'] : null; |
||||
|
$longitude = !empty($_POST['longitude']) ? $_POST['longitude'] : null; |
||||
|
$num = !empty($_POST['num']) ? $_POST['num'] : null; |
||||
|
$files = !empty($_FILES['files']) ? $_FILES['files'] : null; |
||||
|
$elevators = !empty($_POST['elevators']) ? json_decode($_POST['elevators'], true) : []; |
||||
|
// validate |
||||
|
$fail_arr = []; |
||||
|
if($contractno === '') return $fail_arr[] = '合約號為必填'; |
||||
|
|
||||
|
if($total_price == '') $fail_arr[] = '合約總價為必填'; |
||||
|
if($vat == '') $fail_arr[] = '統一編號為必填'; |
||||
|
if($mtype == '') $fail_arr[] = '維修型態為必填'; |
||||
|
if($phone == '') $fail_arr[] = '客戶電話為必填'; |
||||
|
if($email == '') $fail_arr[] = 'Email為必填'; |
||||
|
if($mworker == '') $fail_arr[] = '保養員為必填'; |
||||
|
if($mcycle == '') $fail_arr[] = '保養頻率為必填'; |
||||
|
if($salesman == '') $fail_arr[] = '營業員為必填'; |
||||
|
if($contract_begin_date == '') $fail_arr[] = '合約開始時間為必填'; |
||||
|
if($contract_end_date == '') $fail_arr[] = '合約結束時間為必填'; |
||||
|
if($address == '') $fail_arr[] = '地址為必填'; |
||||
|
if($area == '') $fail_arr[] = '區域為必填'; |
||||
|
if($customer == '') $fail_arr[] = '客戶為必填'; |
||||
|
if($partyA == '') $fail_arr[] = '業務聯繫人為必填'; |
||||
|
if($partyAaddress == '') $fail_arr[] = '業務聯繫人地址為必填'; |
||||
|
if($partyAphone == '') $fail_arr[] = '業務聯繫人電話為必填'; |
||||
|
if($partyAemail == '') $fail_arr[] = '業務聯繫人Email為必填'; |
||||
|
if($num == '') $fail_arr[] = '電梯數量為必填'; |
||||
|
if(count($fail_arr) > 0) { |
||||
|
header("HTTP/1.1 422 Unprocessable Entity"); |
||||
|
echo json_encode($fail_arr); |
||||
|
exit(); |
||||
|
} |
||||
|
|
||||
|
//create account table |
||||
|
$accounttype = "A"; |
||||
|
$accountid = $vat; |
||||
|
$pwd = "123"; |
||||
|
$name = $partyA; |
||||
|
$tel = $phone ?? ''; |
||||
|
$repairerid = $mworker; |
||||
|
$creater = $user_id; |
||||
|
$create_at = date('Y-m-d H:i:s'); |
||||
|
|
||||
|
$conn->beginTransaction(); |
||||
|
|
||||
|
$sql_str = "INSERT INTO account (accounttype, accountid, pwd, name, tel, address, email, repairerid, creater, create_at) VALUES (:accounttype, :accountid, :pwd, :name, :tel, :address, :email, :repairerid, :creater, :create_at)"; |
||||
|
$stmt = $conn -> prepare($sql_str); |
||||
|
$stmt -> bindParam(':accounttype' ,$accounttype); |
||||
|
$stmt -> bindParam(':accountid' ,$accountid); |
||||
|
$stmt -> bindParam(':pwd' ,$pwd); |
||||
|
$stmt -> bindParam(':name' ,$name); |
||||
|
$stmt -> bindParam(':tel' ,$tel); |
||||
|
$stmt -> bindParam(':address' ,$address); |
||||
|
$stmt -> bindParam(':email' ,$email); |
||||
|
$stmt -> bindParam(':repairerid' ,$repairerid); |
||||
|
$stmt -> bindParam(':creater' ,$creater); |
||||
|
$stmt -> bindParam(':create_at' ,$create_at); |
||||
|
$stmt -> execute(); |
||||
|
|
||||
|
//create contract table |
||||
|
|
||||
|
$contracttype = $mtype; |
||||
|
$company = $partyA; |
||||
|
$taxid = $vat; |
||||
|
$tel = $phone; |
||||
|
$promiser = $partyA; |
||||
|
$contractperson = $partyA; |
||||
|
|
||||
|
$contractaddress = $address; |
||||
|
$contracttel = $phone; |
||||
|
$contractemail = $email; |
||||
|
$contract_employee = $salesman; |
||||
|
$start_date = $contract_begin_date; |
||||
|
$end_date = $contract_end_date; |
||||
|
|
||||
|
$sql_str = "INSERT INTO contract (contracttype, contractno, company, taxid, address, tel, promiser, contractperson, contractaddress, contracttel, contractemail, contract_employee, start_date, end_date, creater, create_at) VALUES (:contracttype, :contractno, :company, :taxid, :address, :tel, :promiser, :contractperson, :contractaddress, :contracttel, :contractemail, :contract_employee, :start_date, :end_date, :creater, :create_at)"; |
||||
|
$stmt = $conn -> prepare($sql_str); |
||||
|
$stmt -> bindParam(':contracttype' ,$contracttype); |
||||
|
$stmt -> bindParam(':contractno' ,$contractno); |
||||
|
$stmt -> bindParam(':company' ,$company); |
||||
|
$stmt -> bindParam(':taxid' ,$taxid); |
||||
|
$stmt -> bindParam(':address' ,$address); |
||||
|
$stmt -> bindParam(':tel' ,$tel); |
||||
|
$stmt -> bindParam(':promiser' ,$promiser); |
||||
|
$stmt -> bindParam(':contractperson' ,$contractperson); |
||||
|
$stmt -> bindParam(':contractaddress' ,$contractaddress); |
||||
|
$stmt -> bindParam(':contracttel' ,$contracttel); |
||||
|
$stmt -> bindParam(':contractemail' ,$contractemail); |
||||
|
$stmt -> bindParam(':contract_employee' ,$contract_employee); |
||||
|
$stmt -> bindParam(':start_date' ,$start_date); |
||||
|
$stmt -> bindParam(':end_date' ,$end_date); |
||||
|
$stmt -> bindParam(':creater' ,$creater); |
||||
|
$stmt -> bindParam(':create_at' ,$create_at); |
||||
|
$stmt -> execute(); |
||||
|
|
||||
|
//create facility table |
||||
|
$createFacilityNo = new CreateFacilityNo(); |
||||
|
$dailyNecessities = [ |
||||
|
'MAE100'=>'X', |
||||
|
'MAM200'=>'W', |
||||
|
'MAH100'=>'H', |
||||
|
'MAQ100'=>'Z', |
||||
|
'MAF100'=>'F', |
||||
|
'MAZ100'=>'B', |
||||
|
]; |
||||
|
$facility_arr = []; |
||||
|
foreach($elevators as $elevator){ |
||||
|
$facility_arr[] = $elevator['spec']; |
||||
|
} |
||||
|
echo $dailyNecessities[$elevator['spec']]; |
||||
|
$facilityno = $createFacilityNo->makeBFacilityNo("T", $facility_arr, (int)$num); |
||||
|
|
||||
|
$sql_str = "SELECT accountid, name FROM account WHERE accountid = :accountid"; |
||||
|
$stmt = $conn->prepare($sql_str); |
||||
|
$stmt->bindParam(':accountid',$mworker); |
||||
|
$stmt->execute(); |
||||
|
$worker = $stmt->fetch(PDO::FETCH_ASSOC); |
||||
|
$customerid = $vat; |
||||
|
$define = "B"; |
||||
|
$repairtype = "A"; |
||||
|
$repairerid = $mworker; |
||||
|
$repairername = $worker['name']; |
||||
|
foreach($elevators as $idx=>$elevator){ |
||||
|
$sql_str = "INSERT INTO facility (contractno, define, facilityno, latitude, longitude, customerid, weight, numberofpassenger, numberofstop, numberoffloor, opentype, speed, repairtype, maintainance, facility_kind, address, repairerid, repairername, creater, create_at, area, takecertificatedate, licensedate) |
||||
|
VALUES (:contractno, :define, :facilityno, :latitude, :longitude, :customerid, :weight, :numberofpassenger, :numberofstop, :numberoffloor, :opentype, :speed, :repairtype, :maintainance, :facility_kind, :address, :repairerid, :repairername, :creater, :create_at, :area, :takecertificatedate, :licensedate)"; |
||||
|
$stmt = $conn -> prepare($sql_str); |
||||
|
$stmt -> bindParam(':contractno' ,$contractno); |
||||
|
$stmt -> bindParam(':define' ,$define); |
||||
|
$stmt -> bindParam(':facilityno' ,$facilityno[$idx]); |
||||
|
$stmt -> bindParam(':latitude' ,$elevator['latitude']); |
||||
|
$stmt -> bindParam(':longitude' ,$elevator['longitude']); |
||||
|
$stmt -> bindParam(':customerid' ,$customerid); |
||||
|
$stmt -> bindParam(':weight' ,$elevator['weight']); |
||||
|
$stmt -> bindParam(':numberofpassenger' ,$elevator['persons']); |
||||
|
$stmt -> bindParam(':numberofstop' ,$elevator['stop']); |
||||
|
$stmt -> bindParam(':numberoffloor' ,$elevator['floors']); |
||||
|
$stmt -> bindParam(':opentype' ,$elevator['opendoor']); |
||||
|
$stmt -> bindParam(':speed' ,$elevator['speed']); |
||||
|
$stmt -> bindParam(':repairtype' ,$repairtype); |
||||
|
$stmt -> bindParam(':maintainance' ,$maintainance); |
||||
|
$stmt -> bindParam(':facility_kind' ,$elevator['spec']); |
||||
|
$stmt -> bindParam(':address' ,$address); |
||||
|
$stmt -> bindParam(':repairerid' ,$repairerid); |
||||
|
$stmt -> bindParam(':repairername' ,$repairername); |
||||
|
$stmt -> bindParam(':creater' ,$creater); |
||||
|
$stmt -> bindParam(':create_at' ,$create_at); |
||||
|
$stmt -> bindParam(':area' ,$area); |
||||
|
$stmt -> bindParam(':takecertificatedate' ,$elevator['takecertificatedate']); |
||||
|
$stmt -> bindParam(':licensedate' ,$elevator['licensedateeeee']); |
||||
|
$result = $stmt -> execute(); |
||||
|
} |
||||
|
|
||||
|
//create schedule table |
||||
|
|
||||
|
$comboNo = new CreateComboNo($mcycle, $contract_begin_date, $contract_end_date); |
||||
|
$comboArr = json_decode($comboNo->getComboNo(), true); |
||||
|
foreach($facilityno as $no){ |
||||
|
foreach($comboArr as $combo){ |
||||
|
$sql_str = 'INSERT INTO schedule (contractno, facilityno, combono, repairerid, repairername, duedate, creater, create_at) VALUES (:contractno, :facilityno, :combono, :repairerid, :repairername, :duedate, :creater, :create_at)'; |
||||
|
$stmt = $conn -> prepare($sql_str); |
||||
|
$stmt -> bindParam(':contractno' ,$contractno); |
||||
|
$stmt -> bindParam(':facilityno' ,$no); |
||||
|
$stmt -> bindParam(':combono' ,$combo[0]); |
||||
|
$stmt -> bindParam(':repairerid' ,$repairerid); |
||||
|
$stmt -> bindParam(':repairername' ,$repairername); |
||||
|
$stmt -> bindParam(':duedate' ,$combo[1]); |
||||
|
$stmt -> bindParam(':creater' ,$creater); |
||||
|
$stmt -> bindParam(':create_at' ,$create_at); |
||||
|
$result = $stmt -> execute(); |
||||
|
} |
||||
|
} |
||||
|
// create contract_b_signed_back table |
||||
|
$contract_type = $mtype; |
||||
|
$company = $customer; |
||||
|
$customer_no = $vat; |
||||
|
$salesperson = $salesman; |
||||
|
$customer_phone = $phone; |
||||
|
$customer_email = $email; |
||||
|
$repairman = $mworker; |
||||
|
$cycle = $mcycle; |
||||
|
$contact_person = $partyA; |
||||
|
$contact_address = $partyAaddress; |
||||
|
$contact_phone = $partyAphone; |
||||
|
$contract_email = $partyAemail; |
||||
|
$elevators_number = $num; |
||||
|
$bonus = 1000; |
||||
|
$max_bonus = 2000; |
||||
|
|
||||
|
if(!empty($files)){ |
||||
|
$englisharr = range('a', 'z'); |
||||
|
$file = $_FILES['files']; |
||||
|
$file_name = $file['name']; |
||||
|
$file_type = $file['type']; |
||||
|
$tmp_name = $file['tmp_name']; |
||||
|
$file_size = $file['size']; |
||||
|
$error = $file['error']; |
||||
|
$newfiles = []; |
||||
|
foreach( $files as $file ){ |
||||
|
$i = 0; //新陣列的索引編號 |
||||
|
foreach( $file as $key => $val ){ |
||||
|
$newfiles[$i]['name'] = $files['name'][$key]; |
||||
|
$newfiles[$i]['type'] = $files['type'][$key]; |
||||
|
$newfiles[$i]['tmp_name'] = $files['tmp_name'][$key]; |
||||
|
$newfiles[$i]['error'] = $files['error'][$key]; |
||||
|
$newfiles[$i]['size'] = $files['size'][$key]; |
||||
|
$i++; |
||||
|
} //foreach 第2層 end |
||||
|
} |
||||
|
$max_size = 4096*4096; //設定允許上傳檔案容量的最大值(1M) |
||||
|
$allow_ext = array('jpeg', 'jpg', 'png','JPG','JPEG','PNG','GIF'); //設定允許上傳檔案的類型 |
||||
|
$path = '../images/contracts/'; |
||||
|
if (!file_exists($path)) { mkdir($path); } |
||||
|
$msg_result = ''; //負責接收所有檔案檢測後的回傳訊息 |
||||
|
$datetime = (string)date('YmdHis'); |
||||
|
$files_id = 'c' . $datetime; |
||||
|
foreach( $newfiles as $key => $file ){ |
||||
|
$randNum = rand(1000,9999); |
||||
|
$randEnglish = $englisharr[rand(0,25)]; |
||||
|
$file_name = 'c' . (string)date('YmdHis') . $randNum . $randEnglish . $randNum.$file['name']; |
||||
|
$msg = upload_chk( $file,$path, $max_size, $allow_ext, $file_name ); |
||||
|
if($msg==1){ |
||||
|
$msg = '檔案傳送成功!'; |
||||
|
$sql_str = "INSERT INTO contract_back_files (files_id, file_name, file_mime, file_size, created_at, created_by) VALUES (:files_id, :file_name, :file_mime, :file_size, :created_at, :created_by)"; |
||||
|
$stmt = $conn -> prepare($sql_str); |
||||
|
$stmt -> bindParam(':files_id' ,$files_id); |
||||
|
$stmt -> bindParam(':file_name' ,$file_name); |
||||
|
$stmt -> bindParam(':file_mime' ,$file['type']); |
||||
|
$stmt -> bindParam(':file_size' ,$file['size']); |
||||
|
$stmt -> bindParam(':created_at' ,$created_at); |
||||
|
$stmt -> bindParam(':created_by' ,$user_id); |
||||
|
$stmt ->execute(); |
||||
|
} |
||||
|
$msg_result .= '第' . ($key+1) . '個上傳檔案的結果:' . $msg . '<br/>'; |
||||
|
$src_name = $path.$file['name']; |
||||
|
if( file_exists($src_name) ){ |
||||
|
//副檔名 |
||||
|
$extname = pathinfo($src_name, PATHINFO_EXTENSION); |
||||
|
//主檔名 |
||||
|
$basename = basename($src_name, '.'.$extname); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
}else{ |
||||
|
$files = null; |
||||
|
} |
||||
|
$sql_str = "INSERT INTO contract_b_signed_back (contract_no, contract_type, company, customer_no, salesperson, contract_start_date, contract_end_date, total_price, customer_phone, customer_email, repairman, cycle, contact_person, contact_address, contact_phone, contact_email, elevators_number, area, address, files_id, bonus, max_bonus, created_at, created_by) |
||||
|
VALUES (:contract_no, :contract_type, :company, :customer_no, :salesperson, :contract_start_date, :contract_end_date, :total_price, :customer_phone, :customer_email, :repairman, :cycle, :contact_person, :contact_address, :contact_phone, :contact_email, :elevators_number, :area, :address, :files_id, :bonus, :max_bonus, :created_at, :created_by)"; |
||||
|
$stmt = $conn -> prepare($sql_str); |
||||
|
$stmt -> bindParam(":contract_no",$contractno); |
||||
|
$stmt -> bindParam(":contract_type",$contract_type); |
||||
|
$stmt -> bindParam(":company",$company); |
||||
|
$stmt -> bindParam(":customer_no",$customer_no); |
||||
|
$stmt -> bindParam(":salesperson",$salesperson); |
||||
|
$stmt -> bindParam(":contract_start_date",$contract_begin_date); |
||||
|
$stmt -> bindParam(":contract_end_date",$contract_end_date); |
||||
|
$stmt -> bindParam(":total_price",$total_price); |
||||
|
$stmt -> bindParam(":customer_phone",$customer_phone); |
||||
|
$stmt -> bindParam(":customer_email",$customer_email); |
||||
|
$stmt -> bindParam(":repairman",$repairman); |
||||
|
$stmt -> bindParam(":cycle",$cycle); |
||||
|
$stmt -> bindParam(":contact_person",$contact_person); |
||||
|
$stmt -> bindParam(":contact_address",$contact_address); |
||||
|
$stmt -> bindParam(":contact_phone",$contact_phone); |
||||
|
$stmt -> bindParam(":contact_email",$contact_email); |
||||
|
$stmt -> bindParam(":elevators_number",$elevators_number); |
||||
|
$stmt -> bindParam(":area",$area); |
||||
|
$stmt -> bindParam(":address",$address); |
||||
|
$stmt -> bindParam(":files_id",$files_id); |
||||
|
$stmt -> bindParam(":bonus",$bonus); |
||||
|
$stmt -> bindParam(":max_bonus",$max_bonus); |
||||
|
$stmt -> bindParam(":created_at", $created_at); |
||||
|
$stmt -> bindParam(":created_by",$user_id); |
||||
|
|
||||
|
$stmt -> execute(); |
||||
|
|
||||
|
header('Content-Type: application/json'); |
||||
|
$jsonData = json_encode($files); |
||||
|
|
||||
|
$conn->commit(); |
||||
|
}catch(PDOException $e){ |
||||
|
$conn->rollback(); |
||||
|
echo $e->getMessage(); |
||||
|
die('Error!:'.$e->getMessage()); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
function upload_chk( $file, $path, $max_size, $allow_ext, $file_name ){ |
||||
|
|
||||
|
$source_file_name = $file['name']; //上傳檔案的原來檔案名稱 |
||||
|
$file_type = $file['type']; //上傳檔案的類型(副檔名) |
||||
|
$tmp_name = $file['tmp_name']; //上傳到暫存空間的路徑/檔名 |
||||
|
$file_size = $file['size']; //上傳檔案的檔案大小(容量) |
||||
|
$error = $file['error']; //上傳工作傳回的錯誤訊息編號 |
||||
|
$msg = ''; //負責記錄回傳的訊息 |
||||
|
|
||||
|
//1.判斷錯誤編號只有為0時表示沒有錯誤發生,才表示上傳成功 ================= |
||||
|
if( $error == 0 ){ |
||||
|
|
||||
|
//取得檔案延伸的副檔名, 以下函數可以取得檔案延伸的副檔名 |
||||
|
//pathinfo(上傳檔案的原來檔案名稱, PATHINFO_EXTENSION) |
||||
|
$ext = pathinfo($source_file_name, PATHINFO_EXTENSION); |
||||
|
$ext = strtolower($ext); //將延伸的副檔名轉小寫 |
||||
|
|
||||
|
//2.判斷上傳檔案的大小 ==================================== |
||||
|
if( $file_size > $max_size ){ |
||||
|
//當目前檔案容量超過容量限制時, 以下準備顯示的資訊 |
||||
|
if( $max_size >= 4096*4096 ){ |
||||
|
$max_size /= (4096*4096); |
||||
|
$max_size .= 'M'; |
||||
|
}elseif( $max_size >= 4096 ){ |
||||
|
$max_size /= 4096; |
||||
|
$max_size .= 'K'; |
||||
|
} |
||||
|
$msg ='上傳檔案過大,請選擇容量小於 '.$max_size.' 的檔案'; |
||||
|
|
||||
|
//3.判斷檔案類型 =========================================== |
||||
|
//in_array($ext, $allow_ext) 判斷 $ext變數的值 是否在 $allow_ext 這個陣列變數中 |
||||
|
}elseif( !in_array( $ext, $allow_ext ) ){ |
||||
|
$allow_str = ''; //準備將允許檔案類型的陣列內容, 組合成字串 |
||||
|
foreach( $allow_ext as $key=>$value ){ |
||||
|
//if的縮寫語法:條件?成立執行的工作:不成立執行的工作; |
||||
|
$key==0? $allow_str.= $value : $allow_str.=', '.$value; |
||||
|
} |
||||
|
$msg = '檔案類型不符合,請選擇 '.$allow_str.' 檔案'; |
||||
|
|
||||
|
//4.以上條件都沒問題的話, 則進行最後else中的工作=============== |
||||
|
}else{ |
||||
|
//搬移檔案 move_uploaded_file(要搬移的檔案, 目的地位置及目的檔案名稱), 成功傳回true(1) |
||||
|
$msg = @move_uploaded_file($tmp_name, $path.$file_name); |
||||
|
} |
||||
|
}else{ |
||||
|
//這裡表示上傳有錯誤, 匹配錯誤編號顯示對應的訊息 ====================================== |
||||
|
switch ($error) { |
||||
|
case 1: $msg = '上傳檔案超過 upload_max_filesize 容量最大值'; break; |
||||
|
case 2: $msg = '上傳檔案超過 post_max_size 總容量最大值'; break; |
||||
|
case 3: $msg = '檔案只有部份被上傳'; break; |
||||
|
case 4: $msg = '沒有檔案被上傳'; break; |
||||
|
case 6: $msg = '找不到主機端暫存檔案的目錄位置'; break; |
||||
|
case 7: $msg = '檔案寫入失敗'; break; |
||||
|
case 8: $msg = '上傳檔案被PHP程式中斷,表示主機端系統錯誤'; break; |
||||
|
} |
||||
|
} //if( $error == 0 ){ ..... end |
||||
|
|
||||
|
return $msg; //回傳$msg的結果 |
||||
|
} |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 303 KiB |
After Width: | Height: | Size: 701 KiB |
After Width: | Height: | Size: 701 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 303 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 701 KiB |
After Width: | Height: | Size: 303 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 303 KiB |
After Width: | Height: | Size: 701 KiB |
After Width: | Height: | Size: 303 KiB |
After Width: | Height: | Size: 701 KiB |
After Width: | Height: | Size: 701 KiB |
After Width: | Height: | Size: 701 KiB |
@ -0,0 +1,514 @@ |
|||||
|
{ |
||||
|
"cities": [ |
||||
|
{ |
||||
|
"name": "台北市", |
||||
|
"code": 100, |
||||
|
"region": [ |
||||
|
{ "name": "中山區", "code": 104 }, |
||||
|
{ "name": "大安區", "code": 106 }, |
||||
|
{ "name": "信義區", "code": 110 }, |
||||
|
{ "name": "內湖區", "code": 114 }, |
||||
|
{ "name": "士林區", "code": 111 }, |
||||
|
{ "name": "中正區", "code": 100 }, |
||||
|
{ "name": "松山區", "code": 105 }, |
||||
|
{ "name": "北投區", "code": 112 }, |
||||
|
{ "name": "大同區", "code": 103 }, |
||||
|
{ "name": "文山區", "code": 116 }, |
||||
|
{ "name": "南港區", "code": 115 }, |
||||
|
{ "name": "萬華區", "code": 108 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "新北市", |
||||
|
"code": 207, |
||||
|
"region": [ |
||||
|
{ "name": "板橋區", "code": 220 }, |
||||
|
{ "name": "新莊區", "code": 242 }, |
||||
|
{ "name": "中和區", "code": 235 }, |
||||
|
{ "name": "永和區", "code": 234 }, |
||||
|
{ "name": "淡水區", "code": 251 }, |
||||
|
{ "name": "三重區", "code": 241 }, |
||||
|
{ "name": "汐止區", "code": 221 }, |
||||
|
|
||||
|
{ "name": "新店區", "code": 231 }, |
||||
|
{ "name": "土城區", "code": 236 }, |
||||
|
{ "name": "蘆洲區", "code": 247 }, |
||||
|
{ "name": "三峽區", "code": 237 }, |
||||
|
{ "name": "樹林區", "code": 238 }, |
||||
|
{ "name": "鶯歌區", "code": 239 }, |
||||
|
{ "name": "林口區", "code": 244 }, |
||||
|
{ "name": "五股區", "code": 248 }, |
||||
|
|
||||
|
{ "name": "泰山區", "code": 243 }, |
||||
|
{ "name": "八里區", "code": 249 }, |
||||
|
{ "name": "三芝區", "code": 252 }, |
||||
|
{ "name": "萬里區", "code": 207 }, |
||||
|
{ "name": "金山區", "code": 208 }, |
||||
|
{ "name": "石門區", "code": 253 }, |
||||
|
{ "name": "深坑區", "code": 222 }, |
||||
|
{ "name": "石碇區", "code": 223 }, |
||||
|
{ "name": "瑞芳區", "code": 224 }, |
||||
|
{ "name": "平溪區", "code": 226 }, |
||||
|
{ "name": "雙溪區", "code": 227 }, |
||||
|
{ "name": "貢寮區", "code": 228 }, |
||||
|
{ "name": "坪林區", "code": 232 }, |
||||
|
{ "name": "烏來區", "code": 233 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "桃園市", |
||||
|
"code": 320, |
||||
|
"region": [ |
||||
|
{ "name": "中壢區", "code": 320 }, |
||||
|
{ "name": "平鎮區", "code": 324 }, |
||||
|
{ "name": "楊梅區", "code": 326 }, |
||||
|
{ "name": "桃園區", "code": 330 }, |
||||
|
{ "name": "龜山區", "code": 333 }, |
||||
|
{ "name": "八德區", "code": 334 }, |
||||
|
{ "name": "蘆竹區", "code": 338 }, |
||||
|
|
||||
|
{ "name": "大園區", "code": 337 }, |
||||
|
{ "name": "龍潭區", "code": 325 }, |
||||
|
{ "name": "新屋區", "code": 327 }, |
||||
|
{ "name": "觀音區", "code": 328 }, |
||||
|
{ "name": "大溪區", "code": 335 }, |
||||
|
{ "name": "復興區", "code": 336 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "新竹市", |
||||
|
"code": 300, |
||||
|
"region": [ |
||||
|
{ "name": "東區", "code": 30069 }, |
||||
|
{ "name": "北區", "code": 30042 }, |
||||
|
{ "name": "香山區", "code": 30093 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "新竹縣", |
||||
|
"code": 302, |
||||
|
"region": [ |
||||
|
{ "name": "竹北市", "code": 302 }, |
||||
|
{ "name": "湖口鄉", "code": 303 }, |
||||
|
{ "name": "新豐鄉", "code": 304 }, |
||||
|
{ "name": "新埔鎮", "code": 305 }, |
||||
|
{ "name": "關西鎮", "code": 306 }, |
||||
|
{ "name": "芎林鄉", "code": 307 }, |
||||
|
{ "name": "寶山鄉", "code": 308 }, |
||||
|
{ "name": "竹東鎮", "code": 310 }, |
||||
|
{ "name": "五峰鄉", "code": 311 }, |
||||
|
{ "name": "橫山鄉", "code": 312 }, |
||||
|
{ "name": "尖石鄉", "code": 313 }, |
||||
|
{ "name": "北埔鄉", "code": 314 }, |
||||
|
{ "name": "峨嵋鄉", "code": 315 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "基隆市", |
||||
|
"code": 200, |
||||
|
"region": [ |
||||
|
{ "name": "仁愛區", "code": 200 }, |
||||
|
{ "name": "信義區", "code": 201 }, |
||||
|
{ "name": "中正區", "code": 202 }, |
||||
|
{ "name": "中山區", "code": 203 }, |
||||
|
{ "name": "安樂區", "code": 204 }, |
||||
|
{ "name": "暖暖區", "code": 205 }, |
||||
|
{ "name": "七堵區", "code": 206 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "宜蘭縣", |
||||
|
"code": 260, |
||||
|
"region": [ |
||||
|
{ "name": "宜蘭市", "code": 260 }, |
||||
|
{ "name": "頭城鎮", "code": 261 }, |
||||
|
{ "name": "礁溪鄉", "code": 262 }, |
||||
|
{ "name": "壯圍鄉", "code": 263 }, |
||||
|
{ "name": "員山鄉", "code": 264 }, |
||||
|
{ "name": "羅東鎮", "code": 265 }, |
||||
|
{ "name": "三星鄉", "code": 266 }, |
||||
|
{ "name": "大同鄉", "code": 267 }, |
||||
|
{ "name": "五結鄉", "code": 268 }, |
||||
|
{ "name": "冬山鄉", "code": 269 }, |
||||
|
{ "name": "蘇澳鎮", "code": 270 }, |
||||
|
{ "name": "南澳鄉", "code": 272 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "台中市", |
||||
|
"code": 400, |
||||
|
"region": [ |
||||
|
{ "name": "西屯區", "code": 407 }, |
||||
|
{ "name": "北區", "code": 404 }, |
||||
|
{ "name": "北屯區", "code": 406 }, |
||||
|
{ "name": "西區", "code": 403 }, |
||||
|
{ "name": "南區", "code": 402 }, |
||||
|
{ "name": "南屯區", "code": 408 }, |
||||
|
{ "name": "大里區", "code": 412 }, |
||||
|
|
||||
|
{ "name": "中區", "code": 400 }, |
||||
|
{ "name": "東區", "code": 401 }, |
||||
|
{ "name": "太平區", "code": 411 }, |
||||
|
{ "name": "沙鹿區", "code": 433 }, |
||||
|
{ "name": "龍井區", "code": 434 }, |
||||
|
{ "name": "豐原區", "code": 420 }, |
||||
|
{ "name": "潭子區", "code": 427 }, |
||||
|
{ "name": "大雅區", "code": 428 }, |
||||
|
|
||||
|
{ "name": "霧峰區", "code": 413 }, |
||||
|
{ "name": "烏日區", "code": 414 }, |
||||
|
{ "name": "后里區", "code": 421 }, |
||||
|
{ "name": "石岡區", "code": 422 }, |
||||
|
{ "name": "東勢區", "code": 423 }, |
||||
|
{ "name": "和平區", "code": 424 }, |
||||
|
{ "name": "新社區", "code": 426 }, |
||||
|
{ "name": "神岡區", "code": 429 }, |
||||
|
{ "name": "大肚區", "code": 432 }, |
||||
|
{ "name": "梧棲區", "code": 435 }, |
||||
|
{ "name": "清水區", "code": 436 }, |
||||
|
{ "name": "大甲區", "code": 437 }, |
||||
|
{ "name": "外埔區", "code": 438 }, |
||||
|
{ "name": "大安區", "code": 439 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "彰化縣", |
||||
|
"code": 500, |
||||
|
"region": [ |
||||
|
{ "name": "彰化市", "code": 500 }, |
||||
|
{ "name": "員林鎮", "code": 510 }, |
||||
|
{ "name": "鹿港鎮", "code": 505 }, |
||||
|
{ "name": "和美鎮", "code": 508 }, |
||||
|
{ "name": "大村鄉", "code": 515 }, |
||||
|
{ "name": "北斗鎮", "code": 521 }, |
||||
|
{ "name": "溪湖鎮", "code": 514 }, |
||||
|
|
||||
|
{ "name": "芬園鄉", "code": 502 }, |
||||
|
{ "name": "花壇鄉", "code": 503 }, |
||||
|
{ "name": "秀水鄉", "code": 504 }, |
||||
|
{ "name": "福興鄉", "code": 506 }, |
||||
|
{ "name": "線西鄉", "code": 507 }, |
||||
|
{ "name": "伸港鄉", "code": 509 }, |
||||
|
{ "name": "社頭鄉", "code": 511 }, |
||||
|
{ "name": "永靖鄉", "code": 512 }, |
||||
|
{ "name": "埔心鄉", "code": 513 }, |
||||
|
{ "name": "埔鹽鄉", "code": 516 }, |
||||
|
{ "name": "田中鎮", "code": 520 }, |
||||
|
{ "name": "田尾鄉", "code": 522 }, |
||||
|
{ "name": "埤頭鄉", "code": 523 }, |
||||
|
{ "name": "溪州鄉", "code": 524 }, |
||||
|
{ "name": "竹塘鄉", "code": 525 }, |
||||
|
{ "name": "二林鎮", "code": 526 }, |
||||
|
{ "name": "大城鄉", "code": 527 }, |
||||
|
{ "name": "芳苑鄉", "code": 528 }, |
||||
|
{ "name": "二水鄉", "code": 530 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "雲林縣", |
||||
|
"code": 630, |
||||
|
"region": [ |
||||
|
{ "name": "斗南鎮", "code": 630 }, |
||||
|
{ "name": "大埤鄉", "code": 631 }, |
||||
|
{ "name": "虎尾鎮", "code": 632 }, |
||||
|
{ "name": "土庫鎮", "code": 633 }, |
||||
|
{ "name": "褒忠鄉", "code": 634 }, |
||||
|
{ "name": "東勢鄉", "code": 635 }, |
||||
|
{ "name": "臺西鄉", "code": 636 }, |
||||
|
{ "name": "崙背鄉", "code": 637 }, |
||||
|
{ "name": "麥寮鄉", "code": 638 }, |
||||
|
{ "name": "斗六市", "code": 640 }, |
||||
|
{ "name": "林內鄉", "code": 643 }, |
||||
|
{ "name": "古坑鄉", "code": 646 }, |
||||
|
{ "name": "莿桐鄉", "code": 647 }, |
||||
|
{ "name": "西螺鎮", "code": 648 }, |
||||
|
{ "name": "二崙鄉", "code": 649 }, |
||||
|
{ "name": "北港鎮", "code": 651 }, |
||||
|
{ "name": "水林鄉", "code": 652 }, |
||||
|
{ "name": "口湖鄉", "code": 653 }, |
||||
|
{ "name": "四湖鄉", "code": 654 }, |
||||
|
{ "name": "元長鄉", "code": 655 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "苗栗縣", |
||||
|
"code": 350, |
||||
|
"region": [ |
||||
|
{ "name": "竹南鎮", "code": 350 }, |
||||
|
{ "name": "頭份鎮", "code": 351 }, |
||||
|
{ "name": "三灣鄉", "code": 352 }, |
||||
|
{ "name": "南莊鄉", "code": 353 }, |
||||
|
{ "name": "獅潭鄉", "code": 354 }, |
||||
|
{ "name": "後龍鎮", "code": 356 }, |
||||
|
{ "name": "通霄鎮", "code": 357 }, |
||||
|
{ "name": "苑裡鎮", "code": 358 }, |
||||
|
{ "name": "苗栗市", "code": 360 }, |
||||
|
{ "name": "造橋鄉", "code": 361 }, |
||||
|
{ "name": "頭屋鄉", "code": 362 }, |
||||
|
{ "name": "公館鄉", "code": 363 }, |
||||
|
{ "name": "大湖鄉", "code": 364 }, |
||||
|
{ "name": "泰安鄉", "code": 365 }, |
||||
|
{ "name": "銅鑼鄉", "code": 366 }, |
||||
|
{ "name": "三義鄉", "code": 367 }, |
||||
|
{ "name": "西湖鄉", "code": 368 }, |
||||
|
{ "name": "卓蘭鎮", "code": 369 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "南投縣", |
||||
|
"code": 540, |
||||
|
"region": [ |
||||
|
{ "name": "南投市", "code": 540 }, |
||||
|
{ "name": "中寮鄉", "code": 541 }, |
||||
|
{ "name": "草屯鎮", "code": 542 }, |
||||
|
{ "name": "國姓鄉", "code": 544 }, |
||||
|
{ "name": "埔里鎮", "code": 545 }, |
||||
|
{ "name": "仁愛鄉", "code": 546 }, |
||||
|
{ "name": "名間鄉", "code": 551 }, |
||||
|
{ "name": "集集鎮", "code": 552 }, |
||||
|
{ "name": "水里鄉", "code": 553 }, |
||||
|
{ "name": "魚池鄉", "code": 555 }, |
||||
|
{ "name": "信義鄉", "code": 556 }, |
||||
|
{ "name": "竹山鎮", "code": 557 }, |
||||
|
{ "name": "鹿谷鄉", "code": 558 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "台南市", |
||||
|
"code": 700, |
||||
|
"region": [ |
||||
|
{ "name": "東區", "code": 701 }, |
||||
|
{ "name": "北區", "code": 704 }, |
||||
|
{ "name": "永康區", "code": 710 }, |
||||
|
{ "name": "中西區", "code": 700 }, |
||||
|
{ "name": "善化區", "code": 741 }, |
||||
|
{ "name": "新市區", "code": 744 }, |
||||
|
{ "name": "安平區", "code": 708 }, |
||||
|
|
||||
|
{ "name": "南區", "code": 702 }, |
||||
|
{ "name": "安南區", "code": 709 }, |
||||
|
{ "name": "仁德區", "code": 717 }, |
||||
|
{ "name": "新營區", "code": 730 }, |
||||
|
{ "name": "安定區", "code": 745 }, |
||||
|
{ "name": "麻豆區", "code": 721 }, |
||||
|
{ "name": "佳里區", "code": 722 }, |
||||
|
{ "name": "歸仁區", "code": 711 }, |
||||
|
{ "name": "新化區", "code": 712 }, |
||||
|
|
||||
|
{ "name": "左鎮區", "code": 713 }, |
||||
|
{ "name": "玉井區", "code": 714 }, |
||||
|
{ "name": "楠西區", "code": 715 }, |
||||
|
{ "name": "南化區", "code": 716 }, |
||||
|
{ "name": "關廟區", "code": 718 }, |
||||
|
{ "name": "龍崎區", "code": 719 }, |
||||
|
{ "name": "官田區", "code": 720 }, |
||||
|
{ "name": "西港區", "code": 723 }, |
||||
|
{ "name": "七股區", "code": 724 }, |
||||
|
{ "name": "將軍區", "code": 725 }, |
||||
|
{ "name": "學甲區", "code": 726 }, |
||||
|
{ "name": "北門區", "code": 727 }, |
||||
|
{ "name": "後壁區", "code": 731 }, |
||||
|
{ "name": "白河區", "code": 732 }, |
||||
|
{ "name": "東山區", "code": 733 }, |
||||
|
{ "name": "六甲區", "code": 734 }, |
||||
|
{ "name": "下營區", "code": 735 }, |
||||
|
{ "name": "柳營區", "code": 736 }, |
||||
|
{ "name": "鹽水區", "code": 737 }, |
||||
|
{ "name": "大內區", "code": 742 }, |
||||
|
{ "name": "山上區", "code": 743 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "高雄市", |
||||
|
"code": 800, |
||||
|
"region": [ |
||||
|
{ "name": "三民區", "code": 807 }, |
||||
|
{ "name": "左營區", "code": 813 }, |
||||
|
{ "name": "苓雅區", "code": 802 }, |
||||
|
{ "name": "鼓山區", "code": 804 }, |
||||
|
{ "name": "楠梓區", "code": 811 }, |
||||
|
{ "name": "前鎮區", "code": 806 }, |
||||
|
{ "name": "鳳山區", "code": 830 }, |
||||
|
|
||||
|
{ "name": "新興區", "code": 800 }, |
||||
|
{ "name": "前金區", "code": 801 }, |
||||
|
{ "name": "小港區", "code": 812 }, |
||||
|
{ "name": "大寮區", "code": 831 }, |
||||
|
{ "name": "岡山區", "code": 820 }, |
||||
|
{ "name": "鹽埕區", "code": 803 }, |
||||
|
{ "name": "仁武區", "code": 814 }, |
||||
|
{ "name": "大社區", "code": 815 }, |
||||
|
|
||||
|
{ "name": "旗津區", "code": 805 }, |
||||
|
{ "name": "路竹區", "code": 821 }, |
||||
|
{ "name": "阿蓮區", "code": 822 }, |
||||
|
{ "name": "田寮區", "code": 823 }, |
||||
|
{ "name": "燕巢區", "code": 824 }, |
||||
|
{ "name": "橋頭區", "code": 825 }, |
||||
|
{ "name": "梓官區", "code": 826 }, |
||||
|
{ "name": "彌陀區", "code": 827 }, |
||||
|
{ "name": "永安區", "code": 828 }, |
||||
|
{ "name": "湖內區", "code": 829 }, |
||||
|
{ "name": "林園區", "code": 832 }, |
||||
|
{ "name": "鳥松區", "code": 833 }, |
||||
|
{ "name": "大樹區", "code": 840 }, |
||||
|
{ "name": "旗山區", "code": 842 }, |
||||
|
{ "name": "美濃區", "code": 843 }, |
||||
|
{ "name": "六龜區", "code": 844 }, |
||||
|
{ "name": "內門區", "code": 845 }, |
||||
|
{ "name": "杉林區", "code": 846 }, |
||||
|
{ "name": "甲仙區", "code": 847 }, |
||||
|
{ "name": "桃源區", "code": 848 }, |
||||
|
{ "name": "那瑪夏區", "code": 849 }, |
||||
|
{ "name": "茂林區", "code": 851 }, |
||||
|
{ "name": "茄萣區", "code": 852 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "嘉義市", |
||||
|
"code": 600, |
||||
|
"region": [ |
||||
|
{ "name": "東區", "code": 60070 }, |
||||
|
{ "name": "西區", "code": 60085 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "嘉義縣", |
||||
|
"code": 602, |
||||
|
"region": [ |
||||
|
{ "name": "番路鄉", "code": 602 }, |
||||
|
{ "name": "梅山鄉", "code": 603 }, |
||||
|
{ "name": "竹崎鄉", "code": 604 }, |
||||
|
{ "name": "阿里山", "code": 605 }, |
||||
|
{ "name": "中埔鄉", "code": 606 }, |
||||
|
{ "name": "大埔鄉", "code": 607 }, |
||||
|
{ "name": "水上鄉", "code": 608 }, |
||||
|
{ "name": "鹿草鄉", "code": 611 }, |
||||
|
{ "name": "太保市", "code": 612 }, |
||||
|
{ "name": "朴子市", "code": 613 }, |
||||
|
{ "name": "東石鄉", "code": 614 }, |
||||
|
{ "name": "六腳鄉", "code": 615 }, |
||||
|
{ "name": "新港鄉", "code": 616 }, |
||||
|
{ "name": "民雄鄉", "code": 621 }, |
||||
|
{ "name": "大林鎮", "code": 622 }, |
||||
|
{ "name": "溪口鄉", "code": 623 }, |
||||
|
{ "name": "義竹鄉", "code": 624 }, |
||||
|
{ "name": "布袋鎮", "code": 625 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "屏東縣", |
||||
|
"code": 900, |
||||
|
"region": [ |
||||
|
{ "name": "屏東市", "code": 900 }, |
||||
|
{ "name": "三地門", "code": 901 }, |
||||
|
{ "name": "霧臺鄉", "code": 902 }, |
||||
|
{ "name": "瑪家鄉", "code": 903 }, |
||||
|
{ "name": "九如鄉", "code": 904 }, |
||||
|
{ "name": "里港鄉", "code": 905 }, |
||||
|
{ "name": "高樹鄉", "code": 906 }, |
||||
|
{ "name": "鹽埔鄉", "code": 907 }, |
||||
|
{ "name": "長治鄉", "code": 908 }, |
||||
|
{ "name": "麟洛鄉", "code": 909 }, |
||||
|
{ "name": "竹田鄉", "code": 911 }, |
||||
|
{ "name": "內埔鄉", "code": 912 }, |
||||
|
{ "name": "萬丹鄉", "code": 913 }, |
||||
|
{ "name": "潮州鎮", "code": 920 }, |
||||
|
{ "name": "泰武鄉", "code": 921 }, |
||||
|
{ "name": "來義鄉", "code": 922 }, |
||||
|
{ "name": "萬巒鄉", "code": 923 }, |
||||
|
{ "name": "崁頂鄉", "code": 924 }, |
||||
|
{ "name": "新埤鄉", "code": 925 }, |
||||
|
{ "name": "南州鄉", "code": 926 }, |
||||
|
{ "name": "林邊鄉", "code": 927 }, |
||||
|
{ "name": "東港鎮", "code": 928 }, |
||||
|
{ "name": "琉球鄉", "code": 929 }, |
||||
|
{ "name": "佳冬鄉", "code": 931 }, |
||||
|
{ "name": "新園鄉", "code": 932 }, |
||||
|
{ "name": "枋寮鄉", "code": 940 }, |
||||
|
{ "name": "枋山鄉", "code": 941 }, |
||||
|
{ "name": "春日鄉", "code": 942 }, |
||||
|
{ "name": "獅子鄉", "code": 943 }, |
||||
|
{ "name": "車城鄉", "code": 944 }, |
||||
|
{ "name": "牡丹鄉", "code": 945 }, |
||||
|
{ "name": "恆春鎮", "code": 946 }, |
||||
|
{ "name": "滿州鄉", "code": 947 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "台東縣", |
||||
|
"code": 950, |
||||
|
"region": [ |
||||
|
{ "name": "臺東市", "code": 950 }, |
||||
|
{ "name": "綠島鄉", "code": 951 }, |
||||
|
{ "name": "蘭嶼鄉", "code": 952 }, |
||||
|
{ "name": "延平鄉", "code": 953 }, |
||||
|
{ "name": "卑南鄉", "code": 954 }, |
||||
|
{ "name": "鹿野鄉", "code": 955 }, |
||||
|
{ "name": "關山鎮", "code": 956 }, |
||||
|
{ "name": "海端鄉", "code": 957 }, |
||||
|
{ "name": "池上鄉", "code": 958 }, |
||||
|
{ "name": "東河鄉", "code": 959 }, |
||||
|
{ "name": "成功鎮", "code": 961 }, |
||||
|
{ "name": "長濱鄉", "code": 962 }, |
||||
|
{ "name": "太麻里鄉", "code": 963 }, |
||||
|
{ "name": "金峰鄉", "code": 964 }, |
||||
|
{ "name": "大武鄉", "code": 965 }, |
||||
|
{ "name": "達仁鄉", "code": 966 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "花蓮縣", |
||||
|
"code": 970, |
||||
|
"region": [ |
||||
|
{ "name": "花蓮市", "code": 970 }, |
||||
|
{ "name": "新城鄉", "code": 971 }, |
||||
|
{ "name": "秀林鄉", "code": 972 }, |
||||
|
{ "name": "吉安鄉", "code": 973 }, |
||||
|
{ "name": "壽豐鄉", "code": 974 }, |
||||
|
{ "name": "鳳林鎮", "code": 975 }, |
||||
|
{ "name": "光復鄉", "code": 976 }, |
||||
|
{ "name": "豐濱鄉", "code": 977 }, |
||||
|
{ "name": "瑞穗鄉", "code": 978 }, |
||||
|
{ "name": "萬榮鄉", "code": 979 }, |
||||
|
{ "name": "玉里鎮", "code": 981 }, |
||||
|
{ "name": "卓溪鄉", "code": 982 }, |
||||
|
{ "name": "富里鄉", "code": 983 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "澎湖縣", |
||||
|
"code": 880, |
||||
|
"region": [ |
||||
|
{ "name": "馬公市", "code": 880 }, |
||||
|
{ "name": "西嶼鄉", "code": 881 }, |
||||
|
{ "name": "望安鄉", "code": 882 }, |
||||
|
{ "name": "七美鄉", "code": 883 }, |
||||
|
{ "name": "白沙鄉", "code": 884 }, |
||||
|
{ "name": "湖西鄉", "code": 885 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "金門縣", |
||||
|
"code": 890, |
||||
|
"region": [ |
||||
|
{ "name": "金沙鎮", "code": 890 }, |
||||
|
{ "name": "金湖鎮", "code": 891 }, |
||||
|
{ "name": "金寧鄉", "code": 892 }, |
||||
|
{ "name": "金城鎮", "code": 893 }, |
||||
|
{ "name": "烈嶼鄉", "code": 894 }, |
||||
|
{ "name": "烏坵鄉", "code": 896 } |
||||
|
] |
||||
|
}, |
||||
|
{ |
||||
|
"name": "連江縣", |
||||
|
"code": 209, |
||||
|
"region": [ |
||||
|
{ "name": "南竿鄉", "code": 209 }, |
||||
|
{ "name": "北竿鄉", "code": 210 }, |
||||
|
{ "name": "莒光鄉", "code": 211 }, |
||||
|
{ "name": "東引鄉", "code": 212 } |
||||
|
] |
||||
|
} |
||||
|
] |
||||
|
} |
@ -0,0 +1,33 @@ |
|||||
|
<?php |
||||
|
date_default_timezone_set("Asia/Taipei"); |
||||
|
$envFile = __DIR__ . '/../.env'; // .env 文件的路径 |
||||
|
|
||||
|
if (file_exists($envFile)) { |
||||
|
$lines = file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); |
||||
|
if ($lines !== false) { |
||||
|
foreach ($lines as $line) { |
||||
|
list($key, $value) = explode('=', $line, 2); |
||||
|
$key = trim($key); |
||||
|
$value = trim($value); |
||||
|
// 设置环境变量 |
||||
|
putenv("$key=$value"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
date_default_timezone_set("Asia/Taipei"); |
||||
|
$host = getenv('DB_HOST'); |
||||
|
$dbuser = getenv('DB_USERNAME'); |
||||
|
$dbpassword = getenv('DB_PASSWORD'); |
||||
|
$dbname = getenv('DB_DATABASE'); |
||||
|
$link = mysqli_connect($host,$dbuser,$dbpassword,$dbname); |
||||
|
|
||||
|
if($link){ |
||||
|
mysqli_query($link,'SET NAMES utf8'); |
||||
|
// echo "正確連接資料庫"; |
||||
|
} |
||||
|
else { |
||||
|
echo "不正確連接資料庫</br>" . mysqli_connect_error(); |
||||
|
} |
||||
|
|
||||
|
?> |
||||
|
|