Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP、JSON在删除时未正确显示_Javascript_Php_Json - Fatal编程技术网

Javascript PHP、JSON在删除时未正确显示

Javascript PHP、JSON在删除时未正确显示,javascript,php,json,Javascript,Php,Json,我有以下HTML: <html> <head> <script src="results.js" type="text/javascript"></script> <title>Results</title> </head> <body> <div id="resultsDiv"></div> </body> </html>

我有以下HTML:

<html>
<head>
    <script src="results.js" type="text/javascript"></script>
    <title>Results</title>
</head>
<body>
    <div id="resultsDiv"></div>
</body>
</html>

结果
以下JavaScript:

window.onload = function() {
    init();
}

var xmlhttp;
var intervalHandle;

function init() {   
    getAjaxData();
    intervalHandle = setInterval(getAjaxData, 2000);
}

function getAjaxData() {
    if (window.XMLHttpRequest) {
        // IE7+. Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {
        // IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = showJSONData;
    xmlhttp.open("GET", "results2Json.php", true); // GET results from DB
    xmlhttp.send();
}

function showJSONData() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        var data = JSON.parse(xmlhttp.responseText);

        if (data.results.length > 0) { // Delete this line and it's closing brace, below, and the code does what expected
            var output = '<table border=1>';
            output += '<tr><th>Name</th></tr>';

            for (var i = 0; i < data.results.length; i++) {
                output += '<tr><td>' + data.results[i].name + '</td></tr>';
            }

            output += '</table>';
            document.getElementById("resultsDiv").innerHTML = output;
        } //Closing brace
    }
}
window.onload=function(){
init();
}
var-xmlhttp;
var区间句柄;
函数init(){
getAjaxData();
intervalHandle=setInterval(getAjaxData,2000);
}
函数getAjaxData(){
if(window.XMLHttpRequest){
//IE7+。Firefox、Chrome、Opera、Safari
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6,IE5
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=showJSONData;
open(“GET”,“results2Json.php”,true);//从数据库获取结果
xmlhttp.send();
}
函数showJSONData(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var data=JSON.parse(xmlhttp.responseText);
如果(data.results.length>0){//删除这一行及其下面的右大括号,代码将执行预期的操作
var输出=“”;
输出+=‘名称’;
对于(var i=0;i
最后是以下PHP:

<?php
$con = mysqli_connect("localhost","root","");
mysqli_select_db($con,"random");
    $result = mysqli_query($con, "select name from random_name");

$rs = array();
while($rs[] = mysqli_fetch_assoc($result)) {
    // do nothing ;-)
}
mysqli_close($con);

unset($rs[count($rs)-1]);  //removes a null value
print("{ \"results\":" . json_encode($rs) . "}");
?>

如果函数showJSONData中没有结果,则程序没有输出,因此最终结果不会更新。将函数showJSONData更改为

function showJSONData() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        var data = JSON.parse(xmlhttp.responseText);

        if (data.results.length > 0) { // Delete this line and it's closing brace, below, and the code does what expected
            var output = '<table border=1>';
            output += '<tr><th>Name</th></tr>';

            for (var i = 0; i < data.results.length; i++) {
                output += '<tr><td>' + data.results[i].name + '</td></tr>';
            }

            output += '</table>';
            document.getElementById("resultsDiv").innerHTML = output;
        } //Closing brace

        else{
            document.getElementById("resultsDiv").innerHTML = "no results";
       }
    }
函数showJSONData(){ if(xmlhttp.readyState==4&&xmlhttp.status==200){ var data=JSON.parse(xmlhttp.responseText); 如果(data.results.length>0){//删除这一行及其下面的右大括号,代码将执行预期的操作 var输出=“”; 输出+=‘名称’; 对于(var i=0;i
旁注:PHP代码的最后一行是错误的做法,您应该使用
echo json_encode(array('results'=>$rs));
这样您的整个输出都由
json_encode
@scrowler控制谢谢,我会记住这一点并在实际代码中进行更改。谢谢,这比上面的答案更整洁