HTML - JavaScript函数不处理responseText

时间:2018-04-08 12:06:25

标签: javascript html css

所以我的网页上有一个按钮数组,用于通过读取带有php / ajax组合的文本文件来显示机器人的位置。该脚本将按钮设置为相同的颜色,然后更改按钮的颜色以显示我们的机器人的位置。以下是代码片段:

    function position(){
    setInterval(function(){ //wait function 
    document.getElementById("A").style.background ="#008000";
    document.getElementById("B").style.background ="#008000";
    document.getElementById("C").style.background ="#008000";
    document.getElementById("D").style.background ="#008000";
    var request = new XMLHttpRequest(); 
    request.onreadystatechange = function(){
        if (request.readyState == 4 && request.status == 200){ 
            console.log(request.responseText); 
            if (request.responseText == 'A'){
                document.getElementById("A").style.background ="#ff6600";
            } else if (request.responseText == 'B'){
                document.getElementById("B").style.background ="#ff6600";
            } else if (request.responseText == 'C'){
                document.getElementById("C").style.background ="#ff6600";
            } else if (request.responseText == 'D'){
                document.getElementById("D").style.background ="#ff6600";
            } else if (request.responseText == 'E'){
                document.getElementById("E").style.background ="#ff6600";
            } else { 
                document.getElementById("A").style.background ="#ff6600";
            }
        }
    }       
    request.open('POST', 'positionupdate.php', true); //script to read text file
    request.send(); 
},3000);}       //wait

所以,我知道php脚本正在运行,因为控制台日志显示了在文本文件中返回的正确字符。但是,我的脚本只是不处理字符并永久返回'else'条件。

有什么想法吗?

编辑:这是我的控制台日志: enter image description here

1 个答案:

答案 0 :(得分:0)

所以问题是我传递了一个对象而不是一个值。在我的PHP脚本中,我能够通过使用json_encode()函数解决这个问题,并将一个工作程序混合在一起。

供参考,我更新的PHP脚本:

<?php
$myfile = fopen("position.txt","r") or die("Unable to open file!");
$value = fread($myfile, filesize("position.txt"));
echo json_encode($value);
fclose($myfile);
?>