Я создал кнопку в файле index.php
.button_round {
border: none;
padding: 7px;
display: block;
margin: 20px 2px;
border-radius: 50%;
background-Color: red;
}<button class = "button_round" id = "link_button"> </button>Я хочу изменить цвет кнопки в соответствии с условиями, указанными ниже в файле linkcheck.php.
<?php
include ("config.php");
include ("index.php");
//get max timestamp
$sql_query = "SELECT MAX(time) AS max_time FROM table_data";
$execute_query = $conn->query($sql_query);
$sett_row = $execute_query->fetch_assoc();
$max_time = $sett_row["max_time"];
// today date timestamp
$date = new DateTime();
$time = $date->getTimestamp();
if ((($time*1000) - $max_time) > 20000)
{
?>
<script type = "text/javascript">
document.getElementById("link_button").style.backgroundColor = "#FFFFFF"
</script>
<?php
} else {
?>
<script type = "text/javascript" >
document.getElementById("link_button").style.backgroundColor = "#7FFF00"
</script>
<?php
}
?>
Также linkcheck.php выполняется каждую секунду через другое имя файла javascript custom.js
setInterval(function() {
if (true) {
$.ajax({
type: "POST",
url: "linkcheck.php",
success: function(data){
}
});
}
},1000);
Но это не работает. Пожалуйста, кто-нибудь может предложить решение?
сценарий, который вы повторяете, просто входит как переменная (строка) и не добавляется. Решение @Pete должно работать на вас.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


я думаю, вам нужно писать <style>, а не <script>
if ((($time*1000) - $max_time) > 20000)
{
?>
<style>
#link_button{
background:#FFFFFF;
}
</style>
<?php
}
else
{
?>
<style>
#link_button{
background:#7FFF00;
}
</style>
<?php
}
?>
Я бы изменил ваш php файл, чтобы он просто отображал цвет на основе if:
if ((($time*1000) - $max_time) > 20000)
{
echo "#FFFFFF";
}
else
{
echo "#7FFF00";
}
Затем в вашем ajax вы можете просто использовать переменную data в своем ответе (при условии, что в файле php ничего не выводится):
$.ajax({
type: "POST",
url: "linkcheck.php",
success: function(data) {
document.getElementById("link_button").style.backgroundColor = data;
}
});Обратите внимание: делать вызов db каждую секунду не очень хорошо
сделайте console.info для своих данных и посмотрите, что возвращается
какие-либо ошибки - существует ли ссылка на странице, которая выполняет вызов ajax?
Когда вы запускаете вызов ajax - он готов в документе? См. Ответ на это: stackoverflow.com/questions/799981/…
.button_round {граница: нет; отступ: 7 пикселей; дисплей: блок; маржа: 20px 2px; радиус границы: 50%; цвет фона: красный; }