我正在努力制作一个非常简单的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然后是一个空表......
非常感谢任何帮助....努力做这些简单的事情真的让我失望
答案 0 :(得分:3)
您的HTML无效。
<a>
元素不能是<tr>
的子元素。
此处仅允许<td>
和<th>
。
您遇到的问题可能是浏览器尝试通过将<a>
元素移动到允许的位置(即在表格之外)来尝试从错误中恢复的结果。
改为编写有效的HTML。看起来你没有表格数据结构,所以可能不应该首先使用表格。列表可能是更好的选择。
答案 1 :(得分:0)
<a>
中允许使用<td>
个标记。
用以下代码替换PHP代码:
$returnValue .= '<tr><td><a href ="/uploads/' . $upload . '>' . $upload . '</a></td></tr>';