получать данные из базы данных в режиме реального времени, с помощью AJAX? - PullRequest
2 голосов
/ 17 мая 2011

Я получаю данные из следующей базы данных:

enter image description here

У меня есть arduino-box для отправки этих данных.

И отображение данных с помощью этого CSS& HTML code:

    <div class="event">
        <img src="http://dummyimage.com/80x70/f00/fff.png" alt="picture" />  
        <p>Room 2</p>
        <p class="patient-name">Jon Harris</p>
        <p class="event-text">This is a pixel. A flying pixel!</p>
        <p class="event-timestamp">feb 2 2011 - 23:01</p>
    </div>

.event {  
    display:block;  
    background: #ececec;  
    width:380px;  
    padding:10px;  
    margin:10px;  
    overflow:hidden;  
    text-align: left;
}  
.event img {
    display:block;
    float:left;
    margin-right:10px;
}  

.event p {  
    font-weight: bold;
}

.event img + p {
    display:inline;
}

.patient-name {
    display:inline;
    color: #999999;
    font-size: 9px;
    line-height:inherit;
    padding-left: 5px;
}
.event-text{
    color: #999999;
    font-size: 12px;
    padding-left: 5px;
}
.event-timestamp{
    color: #000;
    padding-left: 5px;
    font-size: 9px;
}

Вот мой PHP-код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>DASHBOARD - Arduino 3</title>
  <link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
    <?php
    $con = mysql_connect("localhost","*****","***");
        if(!con)
        {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db("arduino_db",$con);

        $result = mysql_query("SELECT * FROM events");
        //Start container
        echo " <div id='background_container'> ";

        while($row = mysql_fetch_array($result))
        {
            echo "<div class='event'>";
            echo "<img src='img/ev_img/red.jpg' alt='picture' />";
            echo "<p>" . $row['inneboende'] . "</p>";
            echo "<p class='patient-name'>" . "$row['overvakare']" . "</p>";
            echo "<p class='event-text'>" . "$row['handelse']" . "</p>";
            echo "<p class='event-timestamp'>" . "$row['tid']" . "</p>";
            echo "</div>";
        }

        //end container
        echo "</div>"
        mysql_close($con);

    ?>
</body>
</html>

Блок arduino отправляет данные в базу данных. Допустим, каждые 3 секунды.Я не хочу нажимать F5 каждые 5 секунд, чтобы получить новые данные.Должен ли я использовать AJAX для этого?Я прочитал несколько AJAX в сети, но я не нашел хороших подходов для этого.

Ответы [ 2 ]

3 голосов
/ 17 мая 2011

Поместите это в отдельный файл php, например getEvents.php:

<?php
$con = mysql_connect("localhost","*****","***");
    if(!con)
    {
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("arduino_db",$con);

    $result = mysql_query("SELECT * FROM events");

    while($row = mysql_fetch_array($result))
    {
        echo "<div class='event'>";
        echo "<img src='img/ev_img/red.jpg' alt='picture' />";
        echo "<p>" . $row['inneboende'] . "</p>";
        echo "<p class='patient-name'>" . "$row['overvakare']" . "</p>";
        echo "<p class='event-text'>" . "$row['handelse']" . "</p>";
        echo "<p class='event-timestamp'>" . "$row['tid']" . "</p>";
        echo "</div>";
    }

    mysql_close($con);

Затем загрузите jquery и поместите в заголовок страницы следующее:

<script type="text/javascript">
    $(document).ready(function() {  
        $.get('getEvents.php', function (data) {
            $('#background_container').html(data);
        });
    });
</script>

Примечание: это не тот код, который вы должны использовать, посмотрите на него и измените его так, чтобы он работал правильно для вас.

2 голосов
/ 17 мая 2011

Если вы просто пытаетесь обновлять страницу каждые 5 секунд, вы должны использовать javascript и посмотреть на setTimeout:

setTimeout("location.reload(true);",5000);

5000 равно 5 секундам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...