ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ajax활용 - 숫자를 한글로 표기하기 (php 언어)
    직장일기/알고리즘 공부 2021. 5. 19. 21:10

    1단계: 1231 -> 일이삼일

    algo01.html

    <meta charset="utf-8">
    <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
    <html>
    <body>
    <!-- 숫자를 한글로 바꾸기 1단계-->
    <form>
        <input type="number" name="num01">
    </form>
    <button onclick="num_change()">숫자를 한글!</button>
    <p id="result"></p>
    <script>
        function num_change() {
            $.ajax({
                url: "num_change.php", //input으로 들어온 값이 해당 주소로 이동
                type: "get", // 타입설정
                /*
                  form에 있는 값들을 한 번에 전송하기 위해 .serialize()를
                  그렇지 않으면 하나씩 담아줘야해서 data가 많을 수록 코드가 길어짐(노가다)
                */
                data: $('form').serialize()
            })
            // HTTP 요청이 성공하면 요청한 데이터가 done() 메소드로 전달됨.
            .done(function(data) {
                $('#result').text(data);
            });
        }
    </script>
    </body>
    </html>
    

    num_change.php

    <?php
    $numbox = str_split($_GET['num01']); //숫자를 한 개씩 배열로 저장
    
    $i = 0; //while문 반복 횟수 설정을 위한 변수
    $num_text = array('영', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구');
    
    //배열 안의 갯수를 반환하는 count()를 사용해서 while문이 몇 번 반복할지 정한다
    while($i < Count($numbox) ){
      //배열이름[위치] 방식을 이용해서 $numbox배열과 $num_text 배열을 이어준다
      echo($num_text[$numbox[$i]]); 
      $i++;
    }
    ?>
    

     

    2단계: 1204 -> 일천이백사

    algo01-2.html

    <meta charset="utf-8">
    <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
    <html>
    <body>
    <!-- 숫자를 한글로 바꾸기 2단계 -->
    <form>
        <input type="number" name="num02">
    </form>
    <button onclick="num_change()">숫자를 한글!</button>
    <p id="result"></p>
    <script>
        function num_change() {
            $.ajax({
                url: "num_change2.php",
                type: "get",
                data: $('form').serialize()
            })
            .done(function(data) {
                $('#result').text(data);
            });
        }
    </script>
    </body>
    </html>
    

     

    num_change2.php

    <?php
    $numbox = str_split($_GET['num02']); //넘어온 데이터를 배열로 만들기
    $i = 0;
    $j = 1;
    //2차원 배열로 숫자단위와 숫자를 구별
    $num_text = array(
      array('일', '이', '삼', '사', '오', '육', '칠', '필', '구'),
      array('', '십', '백', '천')
    );
    
    while($i < Count($numbox) ){
    //숫자를 샐 때 0의 자리는 세지 않으므로 0인 경우는 생략 
      if($numbox[$i] != 0){
        echo($num_text[0][$numbox[$i]-1]); 
        /*
        자릿수 - 1을 해줘서 앞자리를 맞춰준다
        배열은 [0]부터 시작을 해서 변수 j=1로 설정하고 1씩 빼면서 배열 자릿수를 맞췄다
        */
        echo($num_text[1][Count($numbox)-$j]); 
      }
      $i++;
      $j++;
    }
    ?>
    

     

    '직장일기 > 알고리즘 공부' 카테고리의 다른 글

    백준 코딩 문제풀이  (0) 2021.05.20

    댓글

Designed by Tistory.