url无法识别表单操作

时间:2015-06-08 05:41:00

标签: php forms

我有一个搜索表单,其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变量,因此查询没有执行。

我在哪里做错了请指导。 感谢

2 个答案:

答案 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'],它就可以正常工作。