Showing
7 changed files
with
431 additions
and
34 deletions
1 | + | ||
1 | ## Topic | 2 | ## Topic |
2 | > 코로나 19 예방접종 의료기관 조회 웹서비스를 제공하는 프로젝트입니다. | 3 | > 코로나 19 예방접종 의료기관 조회 웹서비스를 제공하는 프로젝트입니다. |
3 | - | 4 | + |
4 | ## Member | 5 | ## Member |
5 | | 김서연 | 허정용 | | 6 | | 김서연 | 허정용 | |
6 | | :----: | :----: | | 7 | | :----: | :----: | |
7 | | [@ksy991018](https://github.com/ksy991018) | [@JeongYougHeo](https://github.com/JeongYougHeo) | | 8 | | [@ksy991018](https://github.com/ksy991018) | [@JeongYougHeo](https://github.com/JeongYougHeo) | |
8 | - | 9 | + |
9 | - | ... | ... |
... | @@ -3,43 +3,68 @@ var bodyParser = require('body-parser'); | ... | @@ -3,43 +3,68 @@ var bodyParser = require('body-parser'); |
3 | var request = require('request'); | 3 | var request = require('request'); |
4 | var cheerio = require('cheerio'); | 4 | var cheerio = require('cheerio'); |
5 | var app =express(); | 5 | var app =express(); |
6 | +app.set('view engine','ejs'); | ||
7 | +app.set('views','./views') | ||
6 | app.use(express.urlencoded( {extended : false } )); | 8 | app.use(express.urlencoded( {extended : false } )); |
9 | + | ||
7 | app.locals.pretty=true; | 10 | app.locals.pretty=true; |
8 | -app.set('views','./views') | 11 | + |
9 | -app.set('view engine','pug'); | 12 | +// app.set('view engine','pug'); |
13 | + | ||
10 | app.use(express.static('public')); | 14 | app.use(express.static('public')); |
15 | +var http = require('http'); | ||
16 | +var fs = require('fs'); | ||
11 | 17 | ||
12 | //?page=페이지번호&?perPage=페이지당 데이터수 | 18 | //?page=페이지번호&?perPage=페이지당 데이터수 |
13 | const $base_url = `https://api.odcloud.kr/api/apnmOrg/v1/list`; | 19 | const $base_url = `https://api.odcloud.kr/api/apnmOrg/v1/list`; |
14 | const $key = '4US0H%2BXj%2BmS8IR4YL0%2BUb9H4CcbTr92QxhYULfOEz1DT%2BZaaos4sRfNh6cmAD2Icli862Ysc31%2BaE4pWywDBIA%3D%3D'; | 20 | const $key = '4US0H%2BXj%2BmS8IR4YL0%2BUb9H4CcbTr92QxhYULfOEz1DT%2BZaaos4sRfNh6cmAD2Icli862Ysc31%2BaE4pWywDBIA%3D%3D'; |
15 | - | ||
16 | -//임시 | ||
17 | const $page=1; | 21 | const $page=1; |
18 | -const $perPage=10; | 22 | +const $perPage=30000; |
19 | 23 | ||
20 | -const $api_url = $base_url + '?returnType=XML&serviceKey='+$key+'&page='+$page+'&perPage='+$perPage; | 24 | +const $api_url = $base_url + '?serviceKey='+$key+'&page='+$page+'&perPage='+$perPage; |
21 | console.log($api_url); | 25 | console.log($api_url); |
22 | 26 | ||
27 | +//해당 URL로 요청 | ||
28 | +app.post('/',function(req,res,next){ | ||
29 | + const searchWord = req.body.region; //지역 키워드 | ||
23 | 30 | ||
24 | -app.listen(3000,function(){ | 31 | + request($api_url,function(err,response,body){ |
25 | - console.log('Connected 3000 port!'); | 32 | + if(err) throw err; |
26 | -}); | 33 | + // console.log(body); |
34 | + //data부분만 추출 | ||
35 | + var obj = JSON.parse(body).data; | ||
36 | + // console.log(obj); | ||
37 | + //검색한 지역 포함한 모든 data 담기 | ||
38 | + let searchList = obj.filter(searchList => { | ||
39 | + return searchList.orgZipaddr.includes(searchWord); | ||
40 | + }); | ||
41 | + | ||
42 | + // console.log(searchList); | ||
43 | + //result라는 변수에 담아 결과 보내기 | ||
44 | + var hey = searchList[0].orgZipaddr.split(','); | ||
45 | + res.render('index', {result:JSON.stringify(searchList) }); | ||
27 | 46 | ||
28 | -request($api_url,function(err,res,body){ | 47 | + }) |
29 | - $ = cheerio.load(body); | ||
30 | - const $infoList = $('item') | ||
31 | - console.log($infoList.html()); | ||
32 | - console.log($infoList.length); | ||
33 | - // let name = $infoList.find('orgnm').text(); | ||
34 | - // let location = $infoList.find('orgZipaddr').text(); | ||
35 | - // console.log(`기관명: ${name}, 위치: ${location}`); | ||
36 | -}) | ||
37 | 48 | ||
38 | -app.post('/search',function(req,res){ | ||
39 | - res.send('내가 검색한 지역은 ' + req.body.region); | ||
40 | }) | 49 | }) |
41 | 50 | ||
42 | app.get('/',function(req,res){ | 51 | app.get('/',function(req,res){ |
52 | + res.render('index'); | ||
53 | + // res.writeHead(200, {'Content-Type': 'text/html'}); | ||
54 | + // fs.readFile('./map/kakaomap.html', null, function(err,data){ | ||
55 | + // if(err){ | ||
56 | + // res.writeHead(404); | ||
57 | + // res.write('error'); | ||
58 | + // } | ||
59 | + // else{ | ||
60 | + // console.log('complete!'); | ||
61 | + // res.write(data); | ||
62 | + // } | ||
63 | + // res.end(); | ||
64 | + // }); | ||
65 | +}) | ||
66 | + | ||
67 | +app.listen(3000,function(){ | ||
68 | + console.log('Connected 3000 port!'); | ||
69 | +}); | ||
43 | 70 | ||
44 | - res.render('main'); | ||
45 | -}) | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
map/kakaomap.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>여러개 마커에 이벤트 등록하기1</title> | ||
6 | + | ||
7 | +</head> | ||
8 | +<body> | ||
9 | + <h1>COVID-19 의료기관 검색하기</h1> | ||
10 | + <form action="/" method="post"> | ||
11 | + <p> | ||
12 | + <input type="text" name="region" placeholder="서울시"/> | ||
13 | + <input type="submit"/> | ||
14 | + </p> | ||
15 | + </form> | ||
16 | + <div id="map" style="width:700px;height:400px;"></div> | ||
17 | + | ||
18 | + <script type="text/javascript" src="https://dapi.kakao.com/v2/maps/sdk.js?appkey=35fccf4b4e2a3179187346f26ed3f988"></script> | ||
19 | + | ||
20 | + | ||
21 | +<script> | ||
22 | +var mapContainer = document.getElementById('map'), // 지도를 표시할 div | ||
23 | + mapOption = { | ||
24 | + center: new kakao.maps.LatLng(37.596672, 127.051950), // 지도의 중심좌표 | ||
25 | + level: 3 // 지도의 확대 레벨 | ||
26 | + }; | ||
27 | + | ||
28 | +var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 | ||
29 | + | ||
30 | + | ||
31 | + | ||
32 | +// 지도 확대 축소를 제어할 수 있는 줌 컨트롤을 생성합니다 | ||
33 | +var zoomControl = new kakao.maps.ZoomControl(); | ||
34 | +map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT); | ||
35 | + | ||
36 | +var listData = "<%= result %>"; | ||
37 | +console.log(listData[1]); | ||
38 | +//입력되는 배열명이 listData로 들어오면 됨. | ||
39 | +listData.forEach(function(addr, index) { | ||
40 | + var tmpaddr = addr[0].split(','); | ||
41 | + console.log(tmpaddr); | ||
42 | + geocoder.addressSearch(tmpaddr[0], function(result, status) { | ||
43 | + if (status === daum.maps.services.Status.OK) { | ||
44 | + var coords = new daum.maps.LatLng(result[0].y, result[0].x); | ||
45 | + | ||
46 | + var marker = new daum.maps.Marker({ | ||
47 | + position: coords, | ||
48 | + clickable: true}); | ||
49 | + | ||
50 | + // 마커를 지도에 표시합니다. | ||
51 | + marker.setMap(map); | ||
52 | + | ||
53 | + // 인포윈도우를 생성합니다 | ||
54 | + var infowindow = new kakao.maps.InfoWindow({ | ||
55 | + content: '<div style="width:150px;text-align:center;padding:6px 0;">' + addr[1] + '</div>', | ||
56 | + removable : true | ||
57 | + }); | ||
58 | + // 마커에 클릭이벤트를 등록합니다 | ||
59 | + kakao.maps.event.addListener(marker, 'click', function() { | ||
60 | + // 마커 위에 인포윈도우를 표시합니다 | ||
61 | + infowindow.open(map, marker); | ||
62 | + }); | ||
63 | + } | ||
64 | + }); | ||
65 | + | ||
66 | +}); | ||
67 | + | ||
68 | + | ||
69 | + | ||
70 | + | ||
71 | +// for (var i = 0; i < positions.length; i ++) { | ||
72 | +// // 마커를 생성합니다 | ||
73 | +// var marker = new kakao.maps.Marker({ | ||
74 | +// map: map, // 마커를 표시할 지도 | ||
75 | +// position: positions[i].latlng // 마커의 위치 | ||
76 | +// }); | ||
77 | + | ||
78 | +// // 마커에 표시할 인포윈도우를 생성합니다 | ||
79 | +// var infowindow = new kakao.maps.InfoWindow({ | ||
80 | +// content: positions[i].content // 인포윈도우에 표시할 내용 | ||
81 | +// }); | ||
82 | + | ||
83 | +// // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다 | ||
84 | +// // 이벤트 리스너로는 클로저를 만들어 등록합니다 | ||
85 | +// // for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다 | ||
86 | +// kakao.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow)); | ||
87 | +// kakao.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow)); | ||
88 | +// } | ||
89 | + | ||
90 | +// 인포윈도우를 표시하는 클로저를 만드는 함수입니다 | ||
91 | +function makeOverListener(map, marker, infowindow) { | ||
92 | + return function() { | ||
93 | + infowindow.open(map, marker); | ||
94 | + }; | ||
95 | +} | ||
96 | + | ||
97 | +// 인포윈도우를 닫는 클로저를 만드는 함수입니다 | ||
98 | +function makeOutListener(infowindow) { | ||
99 | + return function() { | ||
100 | + infowindow.close(); | ||
101 | + }; | ||
102 | +} | ||
103 | +</script> | ||
104 | + | ||
105 | + <script> | ||
106 | + var mapContainer = document.getElementById('map'), // 지도를 표시할 div | ||
107 | + mapOption = { | ||
108 | + center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표 | ||
109 | + level: 3 // 지도의 확대 레벨 | ||
110 | + }; | ||
111 | + | ||
112 | + var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 | ||
113 | + | ||
114 | + // 마커를 표시할 위치와 내용을 가지고 있는 객체 배열입니다 | ||
115 | + var positions = [ | ||
116 | + { | ||
117 | + content: '<div>카카오</div>', | ||
118 | + latlng: new kakao.maps.LatLng(33.450705, 126.570677) | ||
119 | + }, | ||
120 | + { | ||
121 | + content: '<div>생태연못</div>', | ||
122 | + latlng: new kakao.maps.LatLng(33.450936, 126.569477) | ||
123 | + }, | ||
124 | + { | ||
125 | + content: '<div>텃밭</div>', | ||
126 | + latlng: new kakao.maps.LatLng(33.450879, 126.569940) | ||
127 | + }, | ||
128 | + { | ||
129 | + content: '<div>근린공원</div>', | ||
130 | + latlng: new kakao.maps.LatLng(33.451393, 126.570738) | ||
131 | + } | ||
132 | + ]; | ||
133 | + | ||
134 | + for (var i = 0; i < positions.length; i ++) { | ||
135 | + // 마커를 생성합니다 | ||
136 | + var marker = new kakao.maps.Marker({ | ||
137 | + map: map, // 마커를 표시할 지도 | ||
138 | + position: positions[i].latlng // 마커의 위치 | ||
139 | + }); | ||
140 | + | ||
141 | + // 마커에 표시할 인포윈도우를 생성합니다 | ||
142 | + var infowindow = new kakao.maps.InfoWindow({ | ||
143 | + content: positions[i].content // 인포윈도우에 표시할 내용 | ||
144 | + }); | ||
145 | + | ||
146 | + // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다 | ||
147 | + // 이벤트 리스너로는 클로저를 만들어 등록합니다 | ||
148 | + // for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다 | ||
149 | + kakao.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow)); | ||
150 | + kakao.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow)); | ||
151 | + } | ||
152 | + | ||
153 | + // 인포윈도우를 표시하는 클로저를 만드는 함수입니다 | ||
154 | + function makeOverListener(map, marker, infowindow) { | ||
155 | + return function() { | ||
156 | + infowindow.open(map, marker); | ||
157 | + }; | ||
158 | + } | ||
159 | + | ||
160 | + // 인포윈도우를 닫는 클로저를 만드는 함수입니다 | ||
161 | + function makeOutListener(infowindow) { | ||
162 | + return function() { | ||
163 | + infowindow.close(); | ||
164 | + }; | ||
165 | + } | ||
166 | + </script> | ||
167 | +</body> | ||
168 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
map/map.html
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>백신 접종 가능기관</title> | ||
6 | + | ||
7 | +</head> | ||
8 | +<body> | ||
9 | + | ||
10 | + | ||
11 | + <h1>COVID-19 의료기관 검색하기</h1> | ||
12 | + <form action="/" method="post"> | ||
13 | + <p> | ||
14 | + <input type="text" name="region" placeholder="서울시"/> | ||
15 | + <input type="submit"/> | ||
16 | + </p> | ||
17 | + </form> | ||
18 | + | ||
19 | + <div id="map" style="width: 700px;height:400px;"></div> | ||
20 | + <script type="text/javascript" src="https://dapi.kakao.com/v2/maps/sdk.js?appkey=35fccf4b4e2a3179187346f26ed3f988&libraries=services"></script> | ||
21 | + <script> | ||
22 | + var mapContainer = document.getElementById('map'), // 지도를 표시할 div | ||
23 | + mapOption = { | ||
24 | + center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표 | ||
25 | + level: 3 // 지도의 확대 레벨 | ||
26 | + }; | ||
27 | + | ||
28 | + // 지도를 생성합니다 | ||
29 | + var map = new kakao.maps.Map(mapContainer, mapOption); | ||
30 | + | ||
31 | + // 주소-좌표 변환 객체를 생성합니다 | ||
32 | + var geocoder = new kakao.maps.services.Geocoder(); | ||
33 | + | ||
34 | + // 주소로 좌표를 검색합니다 | ||
35 | + geocoder.addressSearch('서울특별시 강동구 올림픽로 779', function(result, status) { | ||
36 | + | ||
37 | + // 정상적으로 검색이 완료됐으면 | ||
38 | + if (status === kakao.maps.services.Status.OK) { | ||
39 | + | ||
40 | + var coords = new kakao.maps.LatLng(result[0].y, result[0].x); | ||
41 | + | ||
42 | + // 결과값으로 받은 위치를 마커로 표시합니다 | ||
43 | + var marker = new kakao.maps.Marker({ | ||
44 | + map: map, | ||
45 | + position: coords | ||
46 | + }); | ||
47 | + | ||
48 | + // 인포윈도우로 장소에 대한 설명을 표시합니다 | ||
49 | + var infowindow = new kakao.maps.InfoWindow({ | ||
50 | + content: '<div style="width:150px;text-align:center;padding:6px 0;">기관명</div>' | ||
51 | + }); | ||
52 | + infowindow.open(map, marker); | ||
53 | + | ||
54 | + // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다 | ||
55 | + map.setCenter(coords); | ||
56 | + } | ||
57 | + }); | ||
58 | + geocoder.addressSearch('서울특별시 동대문구 회기로 173', function(result, status) { | ||
59 | + | ||
60 | + // 정상적으로 검색이 완료됐으면 | ||
61 | + if (status === kakao.maps.services.Status.OK) { | ||
62 | + | ||
63 | + var coords = new kakao.maps.LatLng(result[0].y, result[0].x); | ||
64 | + | ||
65 | + // 결과값으로 받은 위치를 마커로 표시합니다 | ||
66 | + var marker = new kakao.maps.Marker({ | ||
67 | + map: map, | ||
68 | + position: coords | ||
69 | + }); | ||
70 | + | ||
71 | + // 인포윈도우로 장소에 대한 설명을 표시합니다 | ||
72 | + var infowindow = new kakao.maps.InfoWindow({ | ||
73 | + content: '<div style="width:150px;text-align:center;padding:6px 0;">기관명</div>' | ||
74 | + }); | ||
75 | + infowindow.open(map, marker); | ||
76 | + | ||
77 | + // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다 | ||
78 | + map.setCenter(coords); | ||
79 | + } | ||
80 | + }); | ||
81 | + </script> | ||
82 | +</body> | ||
83 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -9,8 +9,10 @@ | ... | @@ -9,8 +9,10 @@ |
9 | "author": "", | 9 | "author": "", |
10 | "license": "ISC", | 10 | "license": "ISC", |
11 | "dependencies": { | 11 | "dependencies": { |
12 | + "@google/maps": "^1.1.3", | ||
12 | "body-parser": "^1.19.0", | 13 | "body-parser": "^1.19.0", |
13 | "cheerio": "^1.0.0-rc.9", | 14 | "cheerio": "^1.0.0-rc.9", |
15 | + "ejs": "^3.1.6", | ||
14 | "express": "^4.17.1", | 16 | "express": "^4.17.1", |
15 | "pug": "^3.0.2", | 17 | "pug": "^3.0.2", |
16 | "request": "^2.88.2", | 18 | "request": "^2.88.2", | ... | ... |
views/index.ejs
0 → 100644
1 | +<!DOCTYPE html> | ||
2 | +<html> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <title>여러개 마커에 이벤트 등록하기1</title> | ||
6 | + | ||
7 | +</head> | ||
8 | +<body> | ||
9 | + | ||
10 | + <h1>COVID-19 의료기관 검색하기</h1> | ||
11 | + <form action="/" method="post"> | ||
12 | + <p> | ||
13 | + <input type="text" name="region" placeholder="서울시"/> | ||
14 | + <input type="submit"/> | ||
15 | + </p> | ||
16 | + </form> | ||
17 | + | ||
18 | + <div id="map" style="width:700px;height:400px;"></div> | ||
19 | + <script type="text/javascript" src="https://dapi.kakao.com/v2/maps/sdk.js?appkey=35fccf4b4e2a3179187346f26ed3f988&libraries=services"></script> | ||
20 | + | ||
21 | + <% if(typeof(result) != "undefined"){ %> | ||
22 | + <script> | ||
23 | + var mapContainer = document.getElementById('map'), // 지도를 표시할 div | ||
24 | + mapOption = { | ||
25 | + center: new kakao.maps.LatLng(37.596672, 127.051950), // 지도의 중심좌표 | ||
26 | + level: 5 // 지도의 확대 레벨 | ||
27 | + }; | ||
28 | + | ||
29 | + var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다 | ||
30 | + var geocoder = new kakao.maps.services.Geocoder(); | ||
31 | + // 지도 확대 축소를 제어할 수 있는 줌 컨트롤을 생성합니다 | ||
32 | + var zoomControl = new kakao.maps.ZoomControl(); | ||
33 | + map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT); | ||
34 | + | ||
35 | + var listData = "<%= result %>"; | ||
36 | + listData = listData.replaceAll('"','\"'); | ||
37 | + listData = JSON.parse(listData); | ||
38 | + | ||
39 | + var count = 0; | ||
40 | + | ||
41 | + //입력되는 배열명이 listData로 들어오면 됨. | ||
42 | + listData.forEach(function(addr, index) { | ||
43 | + var tmpaddr = ((addr.orgZipaddr).split(','))[0]; | ||
44 | + console.log(tmpaddr); | ||
45 | + geocoder.addressSearch(tmpaddr, function(result, status) { | ||
46 | + if (status === kakao.maps.services.Status.OK) { | ||
47 | + var coords = new kakao.maps.LatLng(result[0].y, result[0].x); | ||
48 | + count += 1; | ||
49 | + var marker = new kakao.maps.Marker({ | ||
50 | + position: coords, | ||
51 | + clickable: true}); | ||
52 | + | ||
53 | + // 마커를 지도에 표시합니다. | ||
54 | + marker.setMap(map); | ||
55 | + | ||
56 | + // 인포윈도우를 생성합니다 | ||
57 | + var infowindow = new kakao.maps.InfoWindow({ | ||
58 | + content: '<div style="width:150px;text-align:center;padding:6px 0;">' + '기관명:' + addr.orgnm + '</div>', | ||
59 | + }); | ||
60 | + // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다 | ||
61 | + // 이벤트 리스너로는 클로저를 만들어 등록합니다 | ||
62 | + kakao.maps.event.addListener(marker, 'mouseover', makeOverListener(map, marker, infowindow)); | ||
63 | + kakao.maps.event.addListener(marker, 'mouseout', makeOutListener(infowindow)); | ||
64 | + if(count == 1){ | ||
65 | + map.setCenter(coords); | ||
66 | + } | ||
67 | + // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다 | ||
68 | + map.setCenter(coords); | ||
69 | + //console.log(listData.length); | ||
70 | + } | ||
71 | + }); | ||
72 | + }); | ||
73 | + // 인포윈도우를 표시하는 클로저를 만드는 함수입니다 | ||
74 | + function makeOverListener(map, marker, infowindow) { | ||
75 | + return function() { | ||
76 | + infowindow.open(map, marker); | ||
77 | + }; | ||
78 | + } | ||
79 | + | ||
80 | + // 인포윈도우를 닫는 클로저를 만드는 함수입니다 | ||
81 | + function makeOutListener(infowindow) { | ||
82 | + return function() { | ||
83 | + infowindow.close(); | ||
84 | + }; | ||
85 | + } | ||
86 | + </script> | ||
87 | +<% } %> | ||
88 | + | ||
89 | +</body> | ||
90 | +</html> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | -html | ||
2 | - head | ||
3 | - meta(charset='utf-8') | ||
4 | - body | ||
5 | - form(action='/search' method="post") | ||
6 | - p | ||
7 | - input(type='text' name='region' placeholder='지역') | ||
8 | - p | ||
9 | - input(type='submit') | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +//- html | ||
2 | +//- head | ||
3 | +//- meta(charset='utf-8') | ||
4 | +//- body | ||
5 | +//- h1 COVID-19 의료기관 검색하기 | ||
6 | + | ||
7 | +//- form(action='/' method="post") | ||
8 | +//- p | ||
9 | +//- input(type='text' name='region' placeholder='서울시') | ||
10 | +//- input(type='submit') | ||
11 | + | ||
12 | +//- //result값 있을때만 | ||
13 | +//- if result!=NULL | ||
14 | +//- table | ||
15 | +//- tr | ||
16 | +//- th 기관명 | ||
17 | +//- th 기관 전화번호 | ||
18 | +//- th 기관 주소 | ||
19 | +//- th 휴무일 여부 | ||
20 | +//- th 점심 시작시간 | ||
21 | +//- th 점심 종료시간 | ||
22 | +//- th 진료 시작기간 | ||
23 | +//- th 진료 종료시간 | ||
24 | +//- -for(i=1; i<result.length; i++) | ||
25 | +//- tr | ||
26 | +//- td= result[i].orgnm | ||
27 | +//- td= result[i].orgTlno | ||
28 | +//- td= result[i].orgZipaddr | ||
29 | +//- td= result[i].hldyYn | ||
30 | +//- td= result[i].lunchSttTm | ||
31 | +//- td= result[i].lunchEndTm | ||
32 | +//- td= result[i].sttTm | ||
33 | +//- td= result[i].endTm | ||
34 | + | ||
35 | + | ||
36 | + | ||
37 | + | ||
38 | + | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment