【学做留言本】
页面是index.php,需要用AJAX读取TXT文本内容,需要把内容时_倒序显示_,请大猿帮忙编写,麻烦完整代码方式解答。
<body onLoad="loadDoc()">
<div>
<span id="demo">span>
<script>//ajax异步无刷新页面加载
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
setTimeout("loadDoc()",1000);
}
};
xhttp.open("POST", "ltnr.txt", true);
xhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");
xhttp.send();
}
script>
div>
body>
下面是截图,因为TXT保存的内容是正序上往下保存的,看左边,在我用AJAX读取时候显示也是正序,(目前要的倒序显示方式),别说用改用JS,我要的是AJAX,这样不需要不停刷新加载页面。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body onLoad="loadDoc()">
<div>
<span id="demo"></span>
<script>//ajax异步无刷新页面加载
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
let innerHTML = this.responseText;
document.getElementById("demo").innerHTML = innerHTML.split('\n').reverse().join('\n')
setTimeout("loadDoc()", 1000);
}
};
xhttp.open("POST", "ltnr.txt", true);
xhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded");
xhttp.send();
}
</script>
</div>
</body>
</html>
同学,你怕不是有什么地方理解出入了?
你说不用js操作,难道是用html操作?
AJAX,也是js,只不过它实现了网络操作;
本身,你的内容排序,确实是需要js操作比较容易;
有任何疑问,都可以交流哈
没有js哪里来的ajax,搞清楚概念没有。
要想排序,你得有一个列表,列表的每一项就是你文件中的一行。然后对列表排序(倒)。你这样按照整个文件读出来就是一串字符串插入的html文档中,哪来的排序一说呢?
获取文本,然后分割成数组,然后数组倒序,然后在组合成回去,就可以了,大致如下:
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var arr = this.responseText.split('<br/><br/>');
arr=arr.reverse();
var str=arr.join('<br/><br/>')
document.getElementById("demo").innerHTML = str;
setTimeout("loadDoc()",1000);
}
};
xhttp.open("POST", "ltnr.txt", true);
xhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");
xhttp.send();
}
</script>
怎么读取文本内容我想你应该会的,现在的问题是怎么倒序,主要是你这个倒序的程度,是把文本的最后一行文字放到第一行呢?还是整个文本倒着写,
这两种处理方式不一样,
如果是第一种,把文本的最后一行文字放到第一行,以此类推的话,那楼上的解决方法就是对的,获取到的文本内容浏览器是当做一串字符串的,所以首先使用字符串函数split()分割每一行,得到一个数组,然后数组倒序函数reverse(),再将倒序的数组使用字符串拼接函数join(),拼接成一个倒序的字符串
如果是第二种,你就只能循环字符串,然后将最后一个字放到第一个,以此类推,得到一个完全倒序的字符串