1 / 26

17 장 설문조사 창 제작과 메인 화면 완성

17 장 설문조사 창 제작과 메인 화면 완성. 설문조사 기능 구현 방법 설문조사 결과 처리 설문조사 결과 막대그래프 그리기 최근 게시문 가져오기 메인 화면 완성하기. 설문조사 창의 개요 DB 테이블 설계 및 생성 설문조사 창 제작 메인 화면 완성. 1.1 결과 화면과 요구사항. 요구사항 한 개의 질문에 대한 네 개의 선택 문항 중 하나에 투표 가능 설문조사 결과는 득표수와 함께 막대그래프 형태로 표시 득표율을 정수로 표시. [ 그림 17-1] 설문조사 메인 화면.

Download Presentation

17 장 설문조사 창 제작과 메인 화면 완성

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 17장설문조사 창 제작과메인 화면 완성

  2. 설문조사 기능 구현 방법 • 설문조사 결과 처리 • 설문조사 결과 막대그래프 그리기 • 최근 게시문 가져오기 • 메인 화면 완성하기

  3. 설문조사 창의 개요 • DB 테이블 설계 및 생성 • 설문조사 창 제작 • 메인 화면 완성

  4. 1.1 결과 화면과 요구사항 • 요구사항 • 한 개의 질문에 대한 네 개의 선택 문항 중 하나에 투표 가능 • 설문조사 결과는 득표수와 함께 막대그래프 형태로 표시 • 득표율을 정수로 표시 [그림 17-1] 설문조사 메인 화면

  5. 1.2 준비 파일과 화면 구성 [표 17-1] 설문조사 창 제작 실습에 사용하는 파일 목록

  6. 1.2 준비 파일과 화면 구성 [그림 17-2] 설문조사 창의 페이지와 기능 흐름

  7. 2. DB 테이블 설계 및 생성 [표 17-2] 설문조사 데이터베이스 테이블(테이블명:survey)

  8. survey 테이블 생성 및 초기화 survey.sql create table survey( ans1 int, ans2 int, ans3 int, ans4 int ); insert into survey values(0, 0, 0, 0);

  9. 3.1 설문조사 페이지 생성 [그림 17-3] 설문조사 페이지(팝업창)

  10. 예제 17-1 설문조사 페이지 survey.php 01 <html> 02 <head> 03 <title> 설문조사 </title> 04 <link rel="stylesheet" href="../css/survey.css" type="text/css"> 05 <meta charset="euc-kr"> 06 <script> 07 function update() 08 { 09 var vote; 10 var length = document.survey_form.composer.length; 11 12 for(var i=0; i<length; i++) 13 { 14 if(document.survey_form.composer[i].checked==true) 15 { 16 vote=document.survey_form.composer[i].value; 17 break; 18 } 19 }

  11. 예제 17-1 설문조사 페이지 survey.php 20 21 if(i==length) 22 { 23 alert("문항을 선택하세요!"); 24 return; 25 } 26 27 window.open("update.php?composer="+vote , "", 28 "left=200, top=200, width=160, height=250, status=no, scrollbars=no"); 29 } 30 31 function result() 32 { 33 window.open("result.php" , "", 34 "left=200, top=200, width=160, height=250, status=no, scrollbars=no"); 35 } 36 </script> 37 38 </head>

  12. 예제 17-1 설문조사 페이지 survey.php 39 <body> 40 <form name=survey_form method=post > 41 <table border=0 cellspacing=0 cellpdding=0 width='200' align='center'> 42 <input type=hidden name=kkk value=100> 43 <tr height=40> 44 <td><img src="../img/bbs_poll.gif"></td> 45 </tr> 46 <tr height=1 bgcolor=#cccccc><td></td></tr> 47 <tr height=7><td></td></tr> 48 <tr><td><b> ♬ 가장 좋아하는 기타 작곡가는?</b></td></tr> 49 <tr><td><input type=radio name='composer' value='ans1' > 1. 타레가</td></tr> 50 <tr height=5><td></td></tr> 51 <tr><td><input type=radio name='composer' value='ans2' > 2. 빌라로보스</td></tr> 52 <tr height=5><td></td></tr> 53 <tr><td><input type=radio name='composer' value='ans3' > 3. 끌레양</td></tr> 54 <tr height=5><td></td></tr> 55 <tr><td><input type=radio name='composer' value='ans4' > 4. 소르</td></tr> 56 <tr height=7><td></td></tr>

  13. 예제 17-1 설문조사 페이지 survey.php 57 <tr height=1 bgcolor=#cccccc><td></td></tr> 58 <tr> 59 <tr height=7><td></td></tr> 60 <tr> 61 <td align=middle><img src="../img/b_vote.gif" border="0“ style='cursor:hand' onclick=update()></a> 62 <img src="../img/b_result.gif" border="0" style='cursor:hand' onclick=result()></a></td></tr> 63 </table> 64 </form> 65 </body> 66 </html>

  14. 예제 17-2 투표하기 update.php 01 <? 02 include "../lib/dbconn.php"; 03 04 $sql="update survey set $composer = $composer + 1"; 05 mysql_query($sql, $connect); 06 07 mysql_close(); 08 09 Header("location:result.php"); 10 ?>

  15. 3.3 설문조사 결과 페이지 생성 [그림 17-4] 설문조사 결과 페이지

  16. 예제 17-3 설문조사 결과 페이지 result.php 001 <? 002 include "../lib/dbconn.php"; 003 004 $sql="select * from survey"; 005 $result=mysql_query($sql, $connect); 006 $row=mysql_fetch_array($result); 007 008 $total=$row[ans1] + $row[ans2] + $row[ans3] + $row[ans4]; 009 010 $ans1_percent=$row[ans1]/$total * 100; 011 $ans2_percent=$row[ans2]/$total * 100; 012 $ans3_percent=$row[ans3]/$total * 100; 013 $ans4_percent=$row[ans4]/$total * 100; 014 015 $ans1_percent=floor($ans1_percent); 016 $ans2_percent=floor($ans2_percent); 017 $ans3_percent=floor($ans3_percent); 018 $ans4_percent=floor($ans4_percent); 019 ?>

  17. 예제 17-3 설문조사 결과 페이지 result.php <!-- 생략 --> 028 <table width=250 height=250 border='0' cellspacing='0' cellpadding='0'> 029 <tr> 030 <td width=180 height=1 colspan=5 bgcolor=#ffffff></td> 031 </tr> 032 <tr> 033 <td width=1 height=35 bgcolor='#ffffff'></td> 034 <td width=9 bgcolor='#ffffff'></td> 035 <td width=150 align=center bgcolor='#ffffff'><b> 036 총 투표수 : <? echo $total ?> &nbsp;명 </b></td> 037 <td width=9 bgcolor='#ffffff'></td> 038 <td width=1 bgcolor='#ffffff'></td> 039 </tr> 040 <tr> 041 <td height=29 bgcolor='#ffffff'></td> 042 <td></td>

  18. 예제 17-3 설문조사 결과 페이지 result.php 043 <td valign=middle><b>♬ 가장 좋아하는 기타 작곡가는?</b></td> 044 <td></td> 045 <td bgcolor='#ffffff'></td> 046 </tr> 047 <tr> 048 <td height=20 bgcolor='#ffffff'></td> 049 <td></td> 050 <td> 타레가 (<b><? echo $ans1_percent ?></b> %) 051 <font color=purple><b><? echo $row[ans1] ?></b></font> 명</td> 052 <td></td> 053 <td bgcolor='#ffffff'></td> 054 </tr> 055 <tr> 056 <td height=3 bgcolor='#ffffff'></td> 057 <td></td> 058 <td> 059 <table width=100 border=0 height=3 cellspacing=0 cellpadding=0> 060 <tr>

  19. 예제 17-3 설문조사 결과 페이지 result.php 061 <? 062 $rest=100 - $ans1_percent; 063 echo(" 064 <td width='$ans1_percent%' bgcolor=purple></td> 065 <td width='$rest%' bgcolor='#dddddd' height=5></td> 066 )"; 067 ?> 068 </tr> 069 </table> 070 </td> 071 <td></td> 072 <td bgcolor='#ffffff'></td> 073 </tr> <!-- 생략 -->

  20. 예제 17-3 설문조사 결과 페이지 result.php 156 <tr> 157 <td height=40 bgcolor='#ffffff'></td> 158 <td></td> 159 <td align=center valign=middle> 160 <input type='image' style='cursor:hand' src='../img/close.gif' border=0 161 onfocus=this.blur() onclick="window.close()"></td> 162 <td></td> 163 <td bgcolor='#ffffff'></td> 164 </tr> 165 <tr> 166 <td height=1 colspan=5 bgcolor=#ffffff></td> 167 </tr> 168 </table> 169 </body> 170 </html>

  21. 4. 메인 화면 완성 [그림 17-5] 메인 화면(index.php)의 변화

  22. 예제 17-4 완성된 메인 화면 index.php 01 <? 02 session_start(); 03 ?> 04 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 05 <html> 06 <head> 07 <meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> 08 <link rel="stylesheet" type="text/css" href="css/common.css"> 09 </head> 10 11 <body> <!-- 생략 --> 24 <!-- 최근 글 불러오기 시작 --> 25 <? include "./lib/func.php"; ?> 26 27 <div id="latest"> 28 <div id="latest1">

  23. 예제 17-4 완성된 메인 화면 index.php 29 <div id="title_latest1"><img src="./img/title_latest1.gif"></div> 30 <div class="latest_box"> 31 <? latest_article("greet", 10, 30); ?> 32 </div> 33 </div> 34 <div id="latest2"> 35 <div id="title_latest2"><img src="./img/title_latest2.gif"></div> 36 <div class="latest_box"> 37 <? latest_article("concert", 10, 30); ?> 38 </div> 39 </div> 40 </div> 41 <!-- 최근 글 불러오기 끝 --> 42 43 </div> 44 </div> 45 46 </body> 47 </html>

  24. 예제 17-5 최근 글 불러오기 func.php 01 <? 02 function latest_article($table, $loop, $char_limit) 03 { 04 include "dbconn.php"; 05 06 $sql="select * from $table order by num desc limit $loop"; 07 $result=mysql_query($sql, $connect); 08 09 while($row=mysql_fetch_array($result)) 10 { 11 $num=$row[num]; 12 $len_subject=strlen($row[subject]); 13 $subject=$row[subject]; 14 15 if($len_subject>$char_limit) 16 { 17 $subject=mb_substr($row[subject], 0, $char_limit, 'euc-kr');

  25. 예제 17-5 최근 글 불러오기 func.php 18 $subject=$subject."..."; 19 } 20 21 $regist_day=substr($row[regist_day], 0, 10); 22 23 echo(" 24 <div class='col1'> <a href='./$table/view.php?table=$table&num=$num'>$subject</a> </div><div class='col2'>$regist_day</div> 25 <div class='clear'></div> 26 "); 27 } 28 mysql_close(); 29 } 30 ?>

  26. mb_substr() 함수 • strlen() 함수 사용 형식 string mb_substr(string $str , int $start , int $length , string $encoding) - 첫 번째 인자: 문자열 - 두 번째 인자: 글자의 개수를 세는 시작 지점 - 세 번째 인자: 가져오려는 글자의 개수 - 네 번째 인자: 인코딩옵션 기능 시작점($start)에서부터 세 번째 인자($length)만큼 첫 번째 인자인 문자열($str)에서 글자를 가져온다. 주의사항 한글은 한 글자의 크기가 2바이트이므로 문자열을 가져올 때 한글이 깨질 수도 있다. 이런 상황을 방지하기 위해 네 번째 인자에 인코딩 옵션으로 한글 코드인 euc-kr또는 utf-8을 입력한다. 형식 int strlen(string $string) - 인자: 문자열 기능 인자로 입력된 문자열의 글자 수를 알려준다.

More Related