如何将用户定向到基于搜索关键字的页面?

时间:2015-08-12 16:05:25

标签: php html5

我有一个搜索功能(car_search.php),它允许用户选择汽车类型,年份和颜色,并指向搜索到的汽车的页面。如果他从搜索页面中选择了该页面,我如何将用户引导至Toyota Highlander 2012页面?

car_search.php

            <form  method="POST" action="display_search.php">
                <div class="search_lft">
                    <div class="form-group">
                    <label>Type of Vehicle</label>
                    <select name="car_type" size="1" style="width:280px" onchange="javascript:selVal_(this.value)" >
                        <option selected="selected" value="min" >Vehicle Type</option>
                        <option value="Toyota Highlander" title="Toyota Highlander">Toyota Highlander</option>
                        <option value="Toyota Rav4" title="Toyota Rav4">Toyota Rav4</option>
                        <option value="Toyota Corolla" title="Toyota Corolla">Toyota Corolla</option>
                        <option value="Nissan Altima" title="Nissan Altima">Nissan Altima</option>
                        <option value="Honda Civic" title="Honda Civic">Honda Civic</option>
                        <option value="Honda Civic-EX" title="Honda Civic-EX">Honda Civic-EX</option>
                    </select>
                    </div>          
                </div>
                <div class="search_mid">            
                <div class="model">
                        <label>Year Made</label>
                        <select name="car_year" id="makeid" size="1" style="width:280px;" onchange="javascript:selVal_(this.value)">
                                <option value="min" selected="selected">Car Year</option><option value="2011" title="2011">2011</option><option value="2012" title="2012">2012</option><option value="2013" title="2013">2013</option><option value="2014" title="2014">2014</option><option value="2015" title="2015">2015</option></select>

                </div>

                </div>

                <div class="search_right">
                    <div class="location">
                        <label>Exterior Colour</label><select name="exterior_colour" size="1" style="width:280px" class="">
                            <option value="" selected="selected">Any Colour</option>
                            <option value="White">Pearl White</option>
                            <option value="Silver">Metallic Red</option>
                            <option value="Green">Metallic Grey</option>
                            <option value="Dark Green">Metallic Blue</option>
                            <option value="Blue">Red</option>
                            <option value="Dark Blue">Black</option>
                            <option value="Dark Blue">Grey</option>
                            <option value="Dark Blue">White</option>
                            <option value="Dark Blue">Wine</option>
                            <option value="Dark Blue">BlueBlack</option>
                            <option value="Other">Other</option>
                        </select>
                    </div>  


                </div><br>

            <div style="margin-right:900px; margin-top:110px; height:10px; width:180px;"></div>
            <div style="display: block;" name="searchbox" id="searchbox" class="searchbox">
                    <p>
                        <button style="width:120px;" name="searchtext" type="submit" class="btn btn-info">
                            <span class="glyphicon glyphicon-search"></span> Search
                        </button>
                    </p>
            </div>

            </div>
            </form>

display_search.php

<?php
if(isset($_POST['searchtext'])){

    $car_type = $_POST['car_type'];
    $car_year = $_POST['car_year'];


if($car_type == 'Toyota Highlander' && $car_year == '2012') 
{
    header('Location: toyota_highlander_2012.php');
}

else{ echo  "No results";
}
}
?>

1 个答案:

答案 0 :(得分:0)

你以正确的方式行事,但在你的if clausule中错误输入 $ type_car $ tape_car

另外作为建议你应该创建一些集合,一个用于汽车,一个用于多年,一个用于颜色而不是试图通过它们的名称设置作为选择参数的选项进行比较,这根本不可靠。

由于您似乎正在编写程序编程,我建议您将此表单和逻辑保存在同一页面中以便于维护,您可以选择 car_module.php 之类的名称并尝试此代码

<?php
    #this code still needs work and was not testing, but i hope it works
    $years  = array(
                "2011",
                "2012",
                "2013",
                "2014",
                "2015");

    $cars   = array(
                "01" => "Toyota Highlander",
                "02" => "Toyota Rav4",
                "03" => "Toyota Corolla",
                "04" => "Nissan Altima",
                "05" => "Honda Civic",
                "06" => "Honda Civic-EX");

    $colors = array(
                "White" => "Pearl White",
                "Silver" => "Metallic Red",
                "Green" => "Metallic Grey",
                "Dark Green" => "Metallic Blue",
                "Blue" =>"Red",
                "Dark Blue" => "Black",
                "Dark Blue" => "Grey",
                "Dark Blue" => "White",
                "Dark Blue" => "Wine",
                "Dark Blue" => "BlueBlack",
                "Other" => "Other");


    if(isset($_POST['searchtext'])){

        $carType = $_POST['car_type'];
        $carYear = $_POST['car_year'];

        if ( (int)$carType == 01 && (int)$carYear == 2012 ) {

            header('Location: toyota_highlander_2012.php');

        } else { 

            echo  "No results"; 

        }

    }


?>
<form  method="POST" action="car_module.php">
    <div class="search_lft">
        <div class="form-group">
        <label>Type of Vehicle</label>
        <select name="car_type" size="1" style="width:280px" onchange="javascript:selVal_(this.value)" >

            <option selected="selected" value="min" >Vehicle Type</option>

            <?php  foreach($cars as $carKey => $carName) { ?>
                <option value="<?php echo $carKey ?>" title="Toyota Rav4"><?php echo $carName; ?></option>
            <?php } ?>

        </select>
        </div>          
    </div>

    <div class="search_mid">            
        <div class="model">
                <label>Year Made</label>
                <select name="car_year" id="makeid" size="1" style="width:280px;" onchange="javascript:selVal_(this.value)">

                    <option selected="selected" value="0" >Year</option>

                    <?php  foreach($years as $year) { ?>
                        <option value="<?php echo $year ?>" ><?php echo $year; ?></option>
                    <?php } ?> 

                </select>
        </div>
    </div>

    <div class="search_right">
        <div class="location">
            <label>Exterior Colour</label><select name="exterior_colour" size="1" style="width:280px" class="">
                <?php  foreach($colors as $color) { ?>
                    <option value="<?php echo $color ?>" ><?php echo $color; ?></option>
                <?php } ?> 
            </select>
        </div>  


    </div><br>

<div style="margin-right:900px; margin-top:110px; height:10px; width:180px;"></div>
<div style="display: block;" name="searchbox" id="searchbox" class="searchbox">
        <p>
            <button style="width:120px;" name="searchtext" type="submit" class="btn btn-info">
                <span class="glyphicon glyphicon-search"></span> Search
            </button>
        </p>
</div>

</div>
</form>