首先,我是PHP的菜鸟和使用Forms,但我正在学习,因为我去! 其次,我知道这已被多次覆盖,但我无法让它对我有用!这可能只是我忽略的......
我有一个包含1个搜索字段和3个提交按钮的表单。 根据所选的按钮,查询将在数据库中查找3个不同搜索之一。这很简单......
db.survey.aggregate([
{ "$unwind": "$results" },
{ "$group": {
"_id": "$_id",
"results": { "$push": "$results" },
"matched": {
"$sum": {
"$cond": [
{ "$and": [
{ "$eq": [ "$results.product", "xyz" ] },
{ "$gte": [ "$results.score", 6 ] }
]},
1,
0
]
}
}
}},
{ "$unwind": "$results" },
{ "$match": {
"$or": [
{
"results.product": "xyz",
"results.score": { "$gte": 6 }
},
{ "matched": 0 }
}},
{ "$group": {
"_id": "$_id",
"results": { "$push": "$results" },
"matched": { "$first": "$matched" }
}},
{ "$project": {
"results": {
"$cond": [
{ "$ne": [ "$matched", 0 ] },
"$results",
[]
]
}
}}
])
这始终不会返回找到的记录。 如果我添加默认情况,那么它的工作原理 的print_r($ _ POST);返回“Array()”
这是完整的代码,以防问题出现在其他地方:
<input name="searchterm" type="search" placeholder="Enter Search Terms Here" class="search" />
<input name="searchbtn" type="submit" id="searchbtn" class="searchbutton" value="Artist Search" />
<input name="searchbtn" type="submit" id="searchbtn" class="searchbutton" value="Title Search" />
<input name="searchbtn" type="submit" id="searchbtn" class="searchbutton" value="Disc ID Search" />
<?php if(isset($_SESSION['searchterm'])) {
if(($_SESSION['searchterm']!="")) {
switch ($_POST['searchbtn']) {
case 'Artist Search':
$searchresults=$db->query("select * from 1KaraokeDJ where Artist like '%$searchterm%' limit 100");
break;
case 'Title Search':
$searchresults=$db->query("select * from 1KaraokeDJ where Title like '%$searchterm%' limit 100");
break;
case 'Disc ID Search':
$searchresults=$db->query("select * from 1KaraokeDJ where Disc like '%$searchterm%' limit 100");
break;
}
if(mysqli_num_rows($searchresults) > 0) {
...
}}}?>
答案 0 :(得分:1)
这是因为下面的行在提交表单时重定向。
重定向时不会保留POST
个值。因此,$_POST['searchbtn']
为空,在switch
语句中,它会转到default
个案例。
header("location:index.php");
注释标题重定向,它应该可以工作。
更新的代码:
if(isset($_POST['searchbtn'])) {
$_SESSION['searchterm']=$_POST['searchterm'];
if(($_SESSION['searchterm'])!="") { /*header("location:index.php");*/ }
else { echo "<script> alert('Please enter something to search for') </script>";}
}