是否可以在服务器中发生某些事情后更改CSS元素的颜色?
在我的程序中,我单击一个按钮,然后启动PHP程序。此程序更改服务器中的值(Raspberry Pi的GPIO端口的值)。
有可能在加载边后我可以用PHP更改CSS属性吗?如果我尝试使用AJAX,它没有任何影响,因为该网站已经加载,输出对网站没有影响。
<div id="output">
<script type='text/javascript'>
var gpio_status = '0';
</script>
</div>
<script type="text/javascript">
var php_output = document.getElementById("output");
var request;
function gpio_out(gpio_nr) {
request = new XMLHttpRequest();
request.open("post", "gpio_out.php", true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send("daten=" + gpio_nr);
request.onreadystatechange = request_status;
}
function request_status() {
if (request.readyState == 4 && request.status == 200) {
php_output.innerHTML = request.responseText;
}
}
</script>
AJAX文件的内容:
$gpio_status = shell_exec("cat /sys/class/gpio/gpio" . $gpio_nr . "/value");
echo "<script type='text/javascript'>";
echo "var gpio_status = '$gpio_status';";
echo "</script>";
在结束时我想要JS变量&#34; gpio_status&#34;。但它始终具有相同的值,这是我在开头给出的值:0。如果我colsole.log()变量我总是得到0.但我的其他代码工作正常。
答案 0 :(得分:0)
PHP是一种服务器端语言,这意味着(出于所有意图和目的)你用请求命中它并吐出响应并死掉。是的,如果您愿意重新加载页面并且愿意让PHP控制后端的某些状态,则可以更改元素的CSS样式。
如果我尝试使用AJAX,它没有任何影响,因为网站已经加载,输出对网站没有影响。
你必须将AJAXing错误,因为发明AJAX是为了解决与你的问题完全相同的问题。