我的搜索页面有问题。当页面加载时,有一个值来自类似这样的 URL。
http://localhost/myweb/search.php?subject=Business+%26+Accounting+Studies
此值用于显示我的搜索结果。首先,我在我的页面上检查此值以确保它是否为真,它是否为字符串等。
验证码:
// Check for a valid keyword from search input:
if ((isset($_GET['subject'])) && (is_string ($_GET['subject']))) {
foreach ( $_GET AS $key => $subject) {
$searchKey = $key;
$searchKeyword = '%'.$subject.'%';
}
echo '<pre>', print_r( $_GET), '</pre>';
}else { // No valid keyword, kill the script.
echo 'This page has been accessed in error.';
include ('includes/footer.html');
exit();
}
这段代码目前对我有用。但是当我在加载搜索页面后通过 URL 传递另一个变量时遇到了我的问题。为什么我传递这 2 个变量是我需要在某些条件下过滤我的搜索结果。
我在我的 search.php 页面上使用 2 个 HTML 链接来传递这 2 个变量。它是这样的。
echo '<li><a href="?tutor=link">Tutor</a></li>
<li><a href="?institute=link">Institute</a></li>';
我检查这个值是这样的:
$tutor = isset($_GET['institute']) ? '0' : '1';
$institute = isset($_GET['tutor']) ? '0' : '1';
我的问题是页面首次加载时正确显示所有搜索结果。但是单击过滤链接它不起作用,并且在页面上根本不显示任何搜索结果。
更新:调试结果。
这是print_r($_GET)
第一次加载页面时的结果。
Array
(
[subject] => Mathematics
)
当我点击一个我用来过滤的链接(导师、研究所)时,它变成了这样
Array
(
[subject] => Mathematics
[tutor] => link
)
过滤不会发生,并且不会在页面上显示任何结果。
当我再次单击相同的链接时,它变成了这样。
Array
(
[subject] => link
[tutor] => link
)
再次过滤没有发生并且不在页面上显示任何结果。
谁能告诉我如何解决这个问题?
谢谢你。