Я хочу, чтобы на моем веб-сайте отображалось включение / выключение светодиодов. - PullRequest
0 голосов
/ 08 мая 2018

Я использую Raspberry pi для автоматизации здания. Я просто хочу показать светодиод вкл / выкл на веб-странице. Если он получает 1 "светодиодный индикатор показывает нулевой статус на 1" или 0 "светодиодный индикатор показывает высокий статус на 0" из базы данных MySQL.

Вот мой код. Я хочу заменить серый светодиодный png на красный светодиодный png файл, я сохранил значение в переменной JavaScript. но я думаю, что-то не так с моей функцией JavaScript или if-else оператором.

<?php
$db_host = 'localhost'; // Server Name
$db_user = 'root'; // Username
$db_pass = '******'; // Password
$db_name = '*******'; // Database Name

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
    die ('Failed to connect to MySQL: ' . mysqli_connect_error());  
}

$sql = 'SELECT dev1 FROM `76Hlog` ORDER BY `Serial` DESC LIMIT 1';

$query = mysqli_query($conn, $sql);

if (!$query) {
    die ('SQL Error: ' . mysqli_error($conn));
}
?>


<html>
<body>

<?php


        while ($row = mysqli_fetch_array($query))
        {

            $s1 = $row['dev1'];
                        echo $s1;                  

        }?>


<img id="myImage" src="/image-folder/ioff.png" width="50" height="50">



<script>



var val = <?php echo $s1; ?>;



function changeImage() {
    var image = document.getElementById('myImage');
    if (val == "1") {
        image.src = "/image-folder/ioff.png";
    } else if (val == "0") {
        image.src = "/image-folder/ion.png";
    }
}
</script>


<h1>the value for number is:  
 <script>
        document.write(val)
      </script></h1>


</body>
</html>

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Вы пытались добавить кавычки к значению, возвращаемому php?

var val = "<?php echo $s1; ?>";
0 голосов
/ 08 мая 2018

Для определения просто вызовите функцию javascript при загрузке тела. Когда он загрузится, php запустится, а когда тело загрузится, он установит требуемое изображение.

<body onload="changeImage()">

Теперь, наконец, измените функцию, чтобы php извлекал строки и сохранял их в переменной при вызове changeImage ().

function changeImage() {

  //Php code for connecting to database and saving the result in $s1

    var val = <?php echo $s1; ?>;
    var image = document.getElementById('myImage');
    if (val == "1") {
        image.src = "/image-folder/ioff.png";
    } else if (val == "0") {
        image.src = "/image-folder/ion.png";
    }
}

Если вы хотите, вы можете вызвать эту функцию и после определенного интервала, используя

setInterval(changeImage, time_in_milliseconds);
0 голосов
/ 08 мая 2018

Это выглядит нормально, хотя я не уверен, почему у вас есть эта строка while ($row = mysqli_fetch_array($query)) Зачем вам это нужно в цикле while?

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

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