ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PHP] 50. AJAX 와 PHP(AJAX and PHP) - PHP 강좌, PHP5
    Web/PHP 2015. 6. 13. 14:12


    PHP - AJAX and PHP

     AJAX는 좀 더 상호적인 어플리케이션을 만들기 위해 사용됩니다.





    1. AJAX PHP Example

     아래 예제는 사용자가 입력 필드에 문자를 타이핑하는 동안 웹 페이지와 웹 서버가 어떻게 통신을 하는가를 보이는 예제입니다.



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <html>
    <head>
    <script>
    function showHint(str) {
        if (str.length == 0) { 
            document.getElementById("txtHint").innerHTML = "";
            return;
        } else {
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET""gethint.php?q=" + str, true);
            xmlhttp.send();
        }
    }
    </script>
    </head>
    <body>
     
    <p><b>Start typing a name in the input field below:</b></p>
    <form
    First name: <input type="text" onkeyup="showHint(this.value)">
    </form>
    <p>Suggestions: <span id="txtHint"></span></p>
    </body>
    </html>
    cs

     




     위 예제에서 사용자가 입력 필드에 문자를 입력할 때, showHint() 함수가 실행이 됩니다.

     


     코드 설명:

      - 첫째로, 입력 필드가 비었는지 확인합니다. 비어있다면, txtHint placeHolder의 내용을 지우고 함수를 빠져나옵니다.



     그러나, 입력 필드가 비어있지 않다면, 아래와 같은 일을 합니다:

      - XMLHttpRequest 객체를 생성

      - 서버 반응에 대해 실행될 함수 생성

      - 서버의 PHP 파일(gethint.php)에 요청을 보냅니다.

      - q 파라미터가 gethint.php?="+str이 추가되어 알려집니다.

      - str 변수는 입력필드의 내용을 지니고 있습니다.

     



     






    2. The PHP File - "gethint.php"

     PHP 파일은 배열의 이름을 확인하고, 상응하는 이름을 브라우저에 반환합니다:




    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php
    // Array with names
    $a[] = "Anna";
    $a[] = "Brittany";
    $a[] = "Cinderella";
    $a[] = "Diana";
    $a[] = "Eva";
    $a[] = "Fiona";
    $a[] = "Gunda";
    $a[] = "Hege";
    $a[] = "Inga";
    $a[] = "Johanna";
    $a[] = "Kitty";
    $a[] = "Linda";
    $a[] = "Nina";
    $a[] = "Ophelia";
    $a[] = "Petunia";
    $a[] = "Amanda";
    $a[] = "Raquel";
    $a[] = "Cindy";
    $a[] = "Doris";
    $a[] = "Eve";
    $a[] = "Evita";
    $a[] = "Sunniva";
    $a[] = "Tove";
    $a[] = "Unni";
    $a[] = "Violet";
    $a[] = "Liza";
    $a[] = "Elizabeth";
    $a[] = "Ellen";
    $a[] = "Wenche";
    $a[] = "Vicky";
     
    // get the q parameter from URL
    $q = $_REQUEST["q"];
     
    $hint = "";
     
    // lookup all hints from array if $q is different from "" 
    if ($q !== "") {
        $q = strtolower($q);
        $len=strlen($q);
        foreach($a as $name) {
            if (stristr($qsubstr($name0$len))) {
                if ($hint === "") {
                    $hint = $name;
                } else {
                    $hint .= ", $name";
                }
            }
        }
    }
     
    // Output "no suggestion" if no hint was found or output correct values 
    echo $hint === "" ? "no suggestion" : $hint;
    ?>
    cs
     










    * 이 강좌는 'w3schools'를 참조하여 작성하였습니다.

    댓글

Designed by Tistory.