ข้ามไปที่เนื้อหาหลัก

สอนเขียนโปรแกรม PHP : การดึงข้อมูลจากฐานข้อมูลมาแสดงผ่าน AJAX ด้วย AngularJS $http

หลักการทำงานก็คือ AngularJS จะส่งข้อมูลในรูปแบบ AJAX ไปยังหน้าเป้าหมายก็คือ hotel.php เพื่อนำข้อมูลจากฐานข้อมูล MySQL ในตาราง hotel ทั้งหมดส่งออกมาเป็น json ด้วยคำสั่ง echo json_encode( Array ) จากนั้นเมื่อส่งกลับมา AngularJS ก็จะทำการสร้างแถว TR ขึ้นมาใหม่ตามจำนวนอาร์เรย์ที่ PHP สร้างไว้ด้วยฟังก์ชั่น ng-repeat

ไฟล์ template จะสร้างตาราง HTML เปล่าขึ้นมารอรับค่าเมื่อกดปุ่ม Load ข้อมูล





index.php

<html ng-app="phonecatApp">
<head>
  <meta charset="utf-8"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>FB : facebook.com/ToBeDeveloper </title>
    <!-- Bootstrap -->
    <link href="../../bootstrap/css/bootstrap.min.css" rel="stylesheet">
   
    <script src="../../js/jquery.min.js"></script>
      <script src="../js/angular.min.js"></script>
      <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="../../bootstrap/js/bootstrap.min.js"></script>
</head>
<body ng-controller="PhoneListCtrl">

    <div role="main" class="container theme-showcase">
        <input type="button" value="Load" ng-click="loadData()" />
      <table border="1">
        <tr><th>ชื่อ</th><th>สถานที่</th></tr>
        <tr ng-repeat="phone in phones">
          <td><span>{{phone.name}}</span></td>
          <td><p>{{phone.place}}</p></td>
        </tr>
      </table>
    </div>
   
   
  <script type="text/javascript">
  var phonecatApp = angular.module('phonecatApp', []);

  phonecatApp.controller('PhoneListCtrl', function ($scope, $http) {
      $scope.loadData = function() {
          $http.get('hotel.php').success(function(data) {
                $scope.phones = data;
          });
      };
  });
  </script>
</body>
</html>



ไฟล์ PHP สำหรับแสดงข้อมูลจากฐานข้อมูล แล้วส่งกลับไปในรูปแบบ JSON Format

hotel.php
<?php
    /**
     * Database Connection
     */
    try {
        $db_conn = new PDO('mysql:host=localhost;dbname=crdev_db', 'crdev', 'cr2015');
        $db_conn -> exec("SET CHARACTER SET utf8");
    } catch (PDOException $e) {
        echo "Could not connect to database";
        exit;
    }
   
    // Clear
    $error_message = '';
      $list_array = '';

    $sql = 'SELECT name, place FROM hotel ';
    try {
      $stmt = $db_conn->prepare($sql);

        if($stmt) {

            // perform query
            $result = $stmt->execute();

            if($result) {
                echo json_encode($stmt->fetchAll());

            } else {
                $error = $stmt->errorInfo();
                $error_message = "Query failed with message: " . $error[2];
            }

        }else{
            $error_message = "SQL problem has occurred: " . $e->getMessage();
        }
    } catch (PDOException $e) {
        $error_message = "A database problem has occurred: " . $e->getMessage();
    }

?>

ข้อแตกต่างเกี่ยวกับการรับส่งค่าในรูปแบบ JSON กับการรับส่งค่าแบบธรรมดาทั่วไปที่เรามักจะ echo ข้อมูลออกมาเป็น HTML เพื่อแสดงผลในหน้าเพจที่ส่งค่า Ajax ไปนั้นก็คือความยืดหยุ่นเมื่อเป็น JSON เราสามารถใช้ JavaScript ควบคุมการทำงานได้หลังจากที่รับค่ามาแล้ว
"PHP ไม่ได้สร้างสุดยอดโปรแกรม แต่ PHP ช่วยให้งานคุณง่ายขึ้นต่างหาก"

PHP CI MANIA PHP Code Generator 
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม

สนใจสั่งซื้อเพียง 4,500 บาท
http://fastcoding.phpcodemania.com/

สนับสนุนค่ากาแฟผู้เขียนได้ที่

PayPal

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แจกฟรี!! ระบบต่างๆที่พัฒนาด้วย PHP สำหรับนำไปใช้ในงานต่างๆ

       สำหรับหลายท่านที่ขอโค้ดเข้ามาทาง Inbox ของเฟซบุ๊กแฟนเพจ หรือถามถึงระบบต่างๆหลังไมค์มานั้น ส่วนใหญ่ก็มีแจกอยู่แล้วในเว็บบอร์ด ThaiCreate.Com นะครับ และด้านล่างนี้ก็เป็นระบบต่างๆที่แจกให้นำไปลองใช้ลองศึกษากันครับ

สร้างแบบฟอร์มล็อกอิน HTML + PHP

       ผมจะสร้างระบบตัวอย่างเพื่อแสดงให้เห็นการทำงานของสคริปต์ PHP ที่ใช้ในการล็อกอินอย่างง่ายๆ นะครับ โดยที่ผมจะสร้างโฟลเดอร์ใหม่ขึ้นในไดร์ฟที่เราได้กำหนดให้เป็น Directory Root สำหรับรันสคริปต์ PHP ซึ่งผมกำหนดเอาไว้ที่ D:\www ดังนั้นผมจะสร้างโฟลเดอร์ teacher_assistant ขึ้นมาใหม่จะได้พาธเป็น D:\www\teacher_assistant สำหรับการเข้าถึง จะใช้ URL ดังนี้ http://localhost/teacher_assistant หลังจากสร้างโฟลเดอร์เสร็จเรียบร้อยก็จะเริ่มกระบวนการเตรียมโครงสร้างโปรเจ็กต์ด้วยเครื่องมือช่วยเขียนโปรแกรมชื่อว่า eclipse ซึ่งดูวิธีการสร้างโปรเจ็กต์ได้จากบทความ เริ่มต้นสร้างโปรเจ็กต์ ด้วยโปรแกรม eclipse เครื่องมือเขียนโปรแกรม php ในบทความเป็นการสร้างโปรเจ็กต์ที่มีพาธเป็นโฟลเดอร์ login แต่ในที่นี้ต้องเป็นพาธให้ตรงกับโฟลเดอร์ใหม่ที่เราได้สร้างขึ้นด้วยนะครับ

PHP กับการคิดส่วนลดเป็นเปอร์เซ็น 5%, 10%, 20% ตามช่วงราคาที่กำหนด

<?php     $total_price = 1000;     $discount = 0;         if($total_price >= 500 && $total_price < 1001){         $discount = 5;     }elseif($total_price >= 1001 && $total_price <= 5000){         $discount = 10;     }elseif($total_price >= 5001){         $discount = 20;     }         $discount_bath = ($total_price*$discount)/100; ?> <pre> ซื้อสินค้าครบ 0 ถึง 499 บาท ไม่ได้ส่วนลด ซื้อสินค้าครบ 500 ถึง 1000 บาท ได้ส่วนลด 5% ซื้อสินค้าครบ 1001 ถึง 5000บาท ได้ส่วนลด 10% ซื้อสินค้าครบ 5001 บาทขึ้นไป ได้ส่วนลด 20% </pre> <h3>รวมราคาสินค้า = <?php echo number_format($total_price,2);?></h3> <h5>ส่วนลด = <?php echo $discount;?>%  (<?php echo $discount_bath;?> บาท)</h5> <h2>ราคาหลังส่วนลด = <?php echo number_format($total_price - $discount_bath,2);?>บาท</h2> "PHP ไม่ได้สร้างสุดยอดโปรแกรม แต่ PHP ช่วยให้งานคุณง่ายขึ้นต