将ajax响应写入来自php

时间:2017-10-09 12:54:44

标签: php ajax

我正在努力制作一个非常简单的ajax调用,但它不会工作。 这是由ajax调用的php端(返回正确的响应)

<?php
$returnValue = '';
$allUploads = array_slice(scandir('./uploads'), 2);

$returnValue .= '<table>';
foreach ($allUploads as $upload) {
    $returnValue .= '<tr><a href ="/uploads/' . $upload . '>' . $upload . '</a></tr>';
}
$returnValue .= '</table>';

echo($returnValue);
?>

这是javascript让我失望

<script>
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange =
            function ()
            {
                if (this.readyState == 4 && this.status == 200)
                {
                    alert(this.responseText);
                    document.getElementById("filedisplaytable").innerHTML = this.responseText;
                }
            };
    xhttp.open("GET", "listuploads.php", true);
    xhttp.send();
</script>

最糟糕的是,警告语句正在输出我想写的内容:

<table>
    <tr>
        <a href ="/uploads/DSC001.jpg>DSC001.jpg</a></tr><tr><a href ="/uploads/DSC002.jpg>DSC002.jpg</a>
    </tr>
    <tr>
        <a href ="/uploads/DSC003.jpg>DSC003.jpg</a>
    </tr>
</table>

但是当我把它写入div时,它会写一个hrefs 1st然后是一个空表......

非常感谢任何帮助....努力做这些简单的事情真的让我失望

2 个答案:

答案 0 :(得分:3)

您的HTML无效。

<a>元素不能是<tr>的子元素。

此处仅允许<td><th>

您遇到的问题可能是浏览器尝试通过将<a>元素移动到允许的位置(即在表格之外)来尝试从错误中恢复的结果。

改为编写有效的HTML。看起来你没有表格数据结构,所以可能不应该首先使用表格。列表可能是更好的选择。

答案 1 :(得分:0)

像昆汀说的那样,你的HTML无效。 <a>中允许使用<td>个标记。

用以下代码替换PHP代码:

$returnValue .= '<tr><td><a href ="/uploads/' . $upload . '>' . $upload . '</a></td></tr>';