我的搜索页面存在问题。当页面加载时有一个值来自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';
我的问题是,当页面加载第一次的正确显示所有搜索结果。但点击过滤链接不起作用,并且不在页面上显示任何搜索结果。
UPDATE:调试结果。
这是第一次页面加载时的结果print_r($_GET)
。
Array
(
[subject] => Mathematics
)
它成为这样的事情时,我一下,我用它来过滤
Array
(
[subject] => Mathematics
[tutor] => link
)
过滤不会发生的链接(导师,院)上,并在网页上不显示任何结果。
变成这样,当我再次点击相同的链接。
Array
(
[subject] => link
[tutor] => link
)
再次过滤不会发生,并且不会在页面上显示任何结果。
有人可以告诉我我是如何解决这个问题的?
谢谢。
嗯......'导师= link'不设置'subject'。 – 2013-02-16 05:55:16
我试着改变它,但不工作 -
更好地粘贴您的分配代码,将值分配给$ subject。 – fmask 2013-02-16 06:13:47