以下代码是我的php文件,它将列出我文本文件中的人员。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>viewlist php</title>
</head>
<body>
<h1>List</h1>
<?php
$file = file("peoplelist.txt");
for($i=0; $i<count($file); $i++)
{
$person = explode(",", $file[$i]);
echo "<hr />";
echo "<table cellspacing=10><tr><td>", $i+1,".", "</td>";
echo "<td>", $person[0], "<br />";
echo $person[1], "</td></tr></table>";
}
?>
<hr />
<p>
<a href="sortatoz.php" target="_self">Sort A-Z</a><br />
<a href="sortztoa.php" target="_self">Sort Z-A</a><br />
</p>
</body>
</html>
我想要做的是,当我点击排序A-Z链接时,名为sortatoz.php的文件将对我的文本文件中的列表进行排序,并以排序顺序重定向回viewlist.php。 下面是我的sortatoz.php:
<?php
header("Location: http://myserver/workspace/viewlist.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>sort a to z</title>
</head>
<h1>List</h1>
<body>
<?php
$file = file("peoplelist.txt");
sort($file);
for($i=0; $i<count($file); $i++)
{
$person = explode(",", $file[$i]);
echo "<hr />";
echo "<table cellspacing=10><tr><td>", $i+1,".", "</td>";
echo "<td>", $person[0], "<br />";
echo $person[1], "</td></tr></table>";
}
?>
<hr />
<p>
<a href="sortvisitorsascending.php" target="_self">Sort Visitors A-Z</a><br />
<a href="sortvisitorsdescending.php" target="_self">Sort Visitors Z-A</a><br />
</p>
</body>
</html>
现在,当我点击排序A-Z链接时,它会重定向回viewlist.php ...所以我假设header()函数正在执行它的工作。
但问题是......它没有排序。
我对此很新,所以请耐心等待,请给我一些指导。 我可以对我的代码做什么来重新定向带有排序列表的viewlist.php?
提前感谢。
答案 0 :(得分:1)
header("Location: http://myserver/workspace/viewlist.php");
发送一个HTTP标头,导致浏览器重定向。下面的代码执行正常,但由于浏览器重定向到另一个页面,用户将看不到结果。在您重定向到的网站上,与sortatoz.php
页面无关,这是一个不同的页面。
此外,sortatoz.php
没有做任何“持久价值”的事情。它只读取文件的内容,在内存中对这些内容进行排序,然后输出它们。正如您所想,它不会将已排序的条目写回文件。
由于两个页面上的代码几乎相同,因此您只需在URL中发送变量并对其进行操作。
if (isset($_GET['sort']) && $_GET['sort'] == 'asc') {
sort($file);
}
并链接到viewlist.php?sort=asc
等网站。
答案 1 :(得分:0)
基本上,现在,您正在进行排序,但因为您重定向到viewlist.php,所以下面的代码都没有执行。无论如何,你为什么这么想?你可以在没有重定向的情况下继续使用sortatoz.php,它可以完美地工作。