我有一个搜索表单,其action属性包含要在URL中传递的id,表单是从get方法提交的,用户可以共享或收藏搜索结果。
现在我遇到的问题是,我传递的id没有显示在URL中,但所有其他输入字段的值都显得正常。
这是我的表格:
<form action="trails.php?pname=<?php echo $getName;?>" id="filter" method="GET" name="filter">
<select class="multiselect form-control" multiple="multiple" name='activity[]' id="activity">
<?php
$toaSql = mysql_query("select * from type_of_activity where cat_id='1'");
while ($toaRow = mysql_fetch_array($toaSql)) {
echo "<option value='" . $toaRow['typeOfActivity'] . "'><img style='width: 21px; margin-left: 5px;' src='home/images/" . $toaRow['catImg'] . "'> " . $toaRow['typeOfActivity'] . "</option>";
}
?>
</select>
<select class="multiselect form-control" multiple="multiple" name='activity[]' id="activity">
<?php
$toaSql = mysql_query("select * from type_of_activity where cat_id='2'");
while ($toaRow = mysql_fetch_array($toaSql)) {
echo "<option value='" . $toaRow['typeOfActivity'] . "'><img style='width: 21px; margin-left: 5px;' src='home/images/" . $toaRow['catImg'] . "'> " . $toaRow['typeOfActivity'] . "</option>";
}
?>
</select>
<select class="multiselect form-control" multiple="multiple" name='activity[]' id="activity">
<?php
$toaSql = mysql_query("select * from type_of_activity where cat_id='3'");
while ($toaRow = mysql_fetch_array($toaSql)) {
echo "<option value='" . $toaRow['typeOfActivity'] . "'><img style='width: 21px; margin-left: 5px;' src='home/images/" . $toaRow['catImg'] . "'> " . $toaRow['typeOfActivity'] . "</option>";
}
?>
</select>
</form>
trail.php页面:
if(isset($_GET['pname'])){
$getName = $_GET['pname'];
// print_R($getName);
if($getName=='video'){
$queryVideo = "SELECT * FROM `contributevideo` WHERE status='active' " ;
//echo $queryVideo;
}elseif($getName=='album'){
$queryAlbum = "SELECT * FROM `contributeimage` WHERE status='active' AND category='album'" ;
}
}
Trails.php页面根据从url获取的页面名称运行sql查询,但是在url中它没有找到任何pname
变量,因此查询没有执行。
我在哪里做错了请指导。 感谢
答案 0 :(得分:1)
为什么要将参数描述为URL编码?
<form action="trails.php?pname=<?php echo $getName;?>" id="filter" method="GET" name="filter">
// Existing form
由于表单的方法是“GET”,因此您只需描述一个隐藏的输入。
<form action="trails.php">
<input type="hidden" name="pname" value="<?php echo $getName; ?>"/>
// Existing form
它应该有用。
答案 1 :(得分:0)
您的代码存在的问题是您将表单设置为使用GET
方法提交值。这意味着表单字段中的值将在URL中传递,覆盖(删除)您的pname
值。
要解决此问题,只需将表单的method
更改为POST
,将PHP代码更改为activities
至$_POST['activities']
,它就可以正常工作。