如何将用户发送到新的URL?

时间:2016-11-13 10:55:54

标签: php html url

这是我目前的URL

我现在已经有这个新项目了一段时间,我想知道是否:

  1. 有一种方法,当用户点击小工具时,它会将其发送给.... cat=gadgets,并且还会记住以前的选择
  2. 如何将这个看起来很糟糕的下拉列表变成更有吸引力的东西,比如收音机或两个基本按钮。
  3. 我的代码:

    <div id="advanced-search">
        <form action="<?php bloginfo('url');?>/recipes" method="GET" id="searchF1">
            <?php
            $searched_term = get_query_var('recipe_search');
            if (empty($searched_term)) {
                $searched_term = isset($_GET["search"]) ? $_GET["search"] : "";
            }
            ?>
            <input id="sfield" type="text" name="search" placeholder="keywords" <?php if (!empty($searched_term)) {echo 'value="'.$searched_term.'"';} ?>>
            <select id="img" name="images">
                <option value="1" <?php if($_GET["images"]=='1'){ echo 'selected="selected"';} ?>>with pictures</option>
                <option value="0" <?php if($_GET["images"]=='0'){ echo 'selected="selected"';} ?>>without pictures</option>
            </select>
            <div id="time-side">
                <!--<small>Published time</small>-->
                <input type="text" id="from-side" name="from" placeholder="Start date">
                <input type="text" id="to-side" name="to" placeholder="End date">
            </div>
            <input type="submit" value="Tech">
            <input type="submit" value="Gadgets">
        </form>
    </div>
    

2 个答案:

答案 0 :(得分:0)

您可以通过几种不同的方式在多个页面上保存数据。

  1. 网址:您可以通过网址传输数据,如下所示:example.com/index.php?id=12345然后,您可以id通过$_GET,就像这样$_GET['id']
  2. 会话您可以在会话中保存值,这可能是保存以前数据的最佳选择。您可以保存这样的值:$_SESSION["key"] = "value";然后您可以在网站的任意位置访问该值,如下所示:$_SESSION["key"]。非常好,简单。

  3. Cookie 您可以像$_SESSION一样存储Cookie,但现在只要您愿意,它就会保存在用户计算机上。如果您想使用它,请阅读manual

  4. 因此,在您的情况下,您可以通过网址发送您的catagory信息。像这样:example.com/file.php?catagory=toyota。要在PHP代码中获取该数据,您可以这样做:$_GET['catagory']

    存储上一部分的数据

    $_SESSION["previoussection"] = "some value";
    

    然后您可以像这样访问它:     $_SESSION["previoussection"]您将获得"some value"

答案 1 :(得分:0)

试试这个:

<?php
 session_start();//starting session
$searched_term = isset($_GET["search"]) ? filter_var($_GET["search"],FILTER_SANITIZE_FULL_SPECIAL_CHARS) : "";
if(!empty($search_term)){

    $_SESSION = array();//emptying session for putting new data
    $_SESSION['previous'] = $search_term;//add the new search term to the session with previous key
}else{

    if(!empty($_SESSION['previous'])){//if session is not empty
        $search_term = $_SESSION['previous'];//put the old data to the search term variable
    }   
}

?>
    <div id="advanced-search">
       <form action="recipes" method="GET" id="searchF1">                
       <input id="sfield" type="text" name="search" placeholder="keywords" <?php if (!empty($searched_term)) {
      echo 'value="'.$searched_term.'"';} ?>>

        <input type="radio" name="images" value="1" <?php if(isset($_GET["images"]) && $_GET["images"]=='1'){ 
                echo 'Checked';} ?>>with pictures</option>
          <input type="radio" name="images" value="0" <?php if(isset($_GET["images"]) && $_GET["images"]=='0'){ 
                echo 'checked';} ?>>without pictures</option>
        </select>
         <div id="time-side">
              <input type="text" id="from-side" name="from" placeholder="Start date">
              <input type="text" id="to-side" name="to" placeholder="End date">
          </div>
           <input type="submit" name="Tech" value="Tech">
           <input type="submit" name="cat" value="Gadgets">
          </form>
     </div>

您有两个按钮Tech和Gadgets,所以为了在网址中发送您的方式,您需要名称值对:

       <input type="submit" name="Tech" value="Tech">
       <input type="submit" name="cat" value="Gadgets">