2014-07-23 3 views
0

저는 php와 ajax에 익숙하지 않아서 페이지를 새로 고치지 않고도 mysql 데이터베이스에서 실시간으로 대시 보드를 만들려고했습니다. 나는이 코드를 아래에서 만들 수 있지만이 SQL 쿼리 및 다른 Divs 함께 작동합니다 그래서이 적응하는 방법에 대한 고투입니다.복수 사업부가 mysql 데이터베이스에서 새로 고침

현재 내 코드는 SQL 쿼리를 실행하고 OrderSubmitted Div ID로 출력합니다. div에 다른 sql 쿼리를 출력하고 싶습니다. 주문 수행 완료이 작업을 수행하는 방법은 무엇입니까?

HTML

  <div class="row"> 
     <!-- Left Box --> 
     <div class="col-lg-6 col-sm-6" style="padding-right:15px; padding-left:0px"> 
      <div class="well" style="height: 300px;"> 
      <h2 style="text-align:center; font-size:8em;"> 
       <div id="SubmittedOrders"></div> 
      </h2> 
      <p style="text-align:center; font-size:1.5em;">Outstanding Orders</p> 
      </div> 
     </div> 
     <!-- Right Box --> 

     <div class="col-lg-6 col-sm-6" style="padding-left:15px; padding-right:0px"> 
      <div class="well" style="height: 300px;"> 
      <h2 style="text-align:center; font-size:8em;"> 
       <div id ="OrderFulfilled"></div> 
      </h2> 
      <p style="text-align:center; font-size:1.5em;">Orders fulfiled today</p> 
      </div> 
     </div> 

     </div> 

AJAX 스크립트

function getOrderStatus() { 

    ?> 

    <script> 
     // IE5/6 support 

     function ajax_loop() { 

     if (window.XMLHttpRequest) { 
      xmlhttp=new XMLHttpRequest(); 
     } else { 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     // Create function for handling AJAX response 
     // Set dashboard div's contents to the response for Submitted Orders 
     xmlhttp.onreadystatechange=function() { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      document.getElementById("SubmittedOrders").innerHTML = xmlhttp.responseText; 
      setTimeout(ajax_loop, 1000); 
      } 
     } 

     // Send AJAX request 
     xmlhttp.open("POST","getOrderStatus.php"); 
     xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     xmlhttp.send("action=update"); 

     } 

     ajax_loop(); 

    </script> 

    <?php 

} 

getOrderStatus PHP 파일

<?php 
    // Query users table 
    $sql = "SELECT COUNT(STATUS) from CE_TRANSACTIONS where STATUS = 0;"; 

// Execute query 
    $result = mysqli_query($link, $sql); 

// Loop through rows and draw table 

    while ($row = mysqli_fetch_assoc($result)) { 

    foreach ($row as $field) { 
     echo "$field"; 
    } 
    } 

답변

0

당신은 여기에 프론트 엔드의 책임과 백엔드를 혼합하고 있습니다.

FrontEnd는 JS 코드가 필요한 정적 HTML이어야합니다. 그런 다음 JSON을 반환하는 PHP 파일에 대한 AJAX 호출을 JS 함수가 수행해야합니다 (아마도 document.ready 또는 일부 버튼 클릭).

업데이트하려는 각 DIV에 대해 한 번 AJAX를 사용하여 페이지에서이 PHP 파일을 호출 할 수 있습니다.

JQuery 웹 사이트에서 AJAX를 통해 HTML 페이지 내용을 동적으로 변경하는 데 유용한 튜토리얼이 있습니다. 여기 예를 들어

는 : http://learn.jquery.com/ajax/jquery-ajax-methods/

일부 Google 조회수 : https://www.youtube.com/watch?v=Ga3pOn7wXBA