如何根据URL参数在选择字段中自动选择选项?

时间:2012-04-23 04:58:07

标签: html html-select

在下面的表格中,如何根据我的网址参数值自动选择各种选项?

例如:http://example.com/?type=%28shirt%2C+tshirt%2C+t-shirt%29&length=25&width=17&expand=yes

        <form name="shirty" method="get">
            <select name="type" />
            <option value="(shirt, tshirt, t-shirt)">T-Shirt</option>
            <option value="(hoodie, sweatshirt)">Sweatshirt</option>
           </select>

          <select name="length" />
            <option value="select">Select a length</option>
            <option value="14">14 Inches</option>
            <option value="15">15 Inches</option>
            <option value="16">16 Inches</option>
            <option value="17">17 Inches</option>
            <option value="18">18 Inches</option>
            <option value="19">19 Inches</option>
            <option value="20">20 Inches</option>

           </select>


            <select name="width" />
            <option value="select">Select a Width</option>
            <option value="14">14 Inches</option>                
            <option value="15">15 Inches</option>
            <option value="16">16 Inches</option>
            <option value="17">17 Inches</option>
            <option value="18">18 Inches</option>
            <option value="19">19 Inches</option>
            <option value="20">20 Inches</option>
           </select>

          <input type="checkbox" name="expand" value="yes"" checked><small>include ± 1 inch?</small>

          <input type="submit" name="Submit" value="Search" />

        </form>

2 个答案:

答案 0 :(得分:0)

知道了。

        <form name="shirty" method="get">
            <select name="type" />
             <?php //create the select options
                $options = "
                    <option value=\"(shirt, tshirt, t-shirt)\">T-Shirt</option>
                    <option value=\"(hoodie, sweatshirt)\">Sweatshirt</option>";
                    $saved = $type;
                $saved = (!empty($saved))? $saved: false;
                if ($saved)
                    //if there is a saved data set the option to selected
                    $options = str_replace('value="'.$saved.'"','value="'.$saved.'" selected="selected"',$options);
                //echo out the options
                echo $options; ?>
                ?>
           </select>


          <select name="length" />
            <?php //create the select options
                $options = "
                    <option value=\"14\">14 Inches</option>
                    <option value=\"15\">15 Inches</option>
                    <option value=\"16\">16 Inches</option>
                    <option value=\"17\">17 Inches</option>
                    <option value=\"18\">18 Inches</option>
                    <option value=\"19\">19 Inches</option>
                    <option value=\"20\">20 Inches</option>";

                    $saved = $length;
                $saved = (!empty($saved))? $saved: false;
                if ($saved)
                    //if there is a saved data set the option to selected
                    $options = str_replace('value="'.$saved.'"','value="'.$saved.'" selected="selected"',$options);
                //echo out the options
                echo $options; ?>
                ?>
           </select>


            <select name="width" />
            <?php //create the select options
                $options = "
                    <option value=\"14\">14 Inches</option>
                    <option value=\"15\">15 Inches</option>
                    <option value=\"16\">16 Inches</option>
                    <option value=\"17\">17 Inches</option>
                    <option value=\"18\">18 Inches</option>
                    <option value=\"19\">19 Inches</option>
                    <option value=\"20\">20 Inches</option>";
                    $saved = $width;
                $saved = (!empty($saved))? $saved: false;
                if ($saved)
                    //if there is a saved data set the option to selected
                    $options = str_replace('value="'.$saved.'"','value="'.$saved.'" selected="selected"',$options);
                //echo out the options
                echo $options; ?>
                ?>
           </select>

          <input type="checkbox" name="expand" value="yes"" checked><small>include ± 1 inch?</small>

          <input type="submit" name="Submit" value="Search" />

          </form>

答案 1 :(得分:0)

<?php   
  //This example creates a select element and marks selected option using selected_id in URL 

        $attributesAssocArray = array(
            "id"=>"someId","class"=>"someClass"
        );

        $optionsArray = array(
            0=>"choose...",1=>"one",2=>"two",3=>"three"
        );

        $selectedId = (!empty($_GET['selected_id'])&&(is_numeric($_GET['selected_id'])))?  intval($_GET['selected_id']):-1;

        echo generate_select($attributesAssocArray,$optionsArray,$selectedId);

        function generate_select($attributesAssocArray=array(),$optionsArray=array(),$selected=-1)
        {
            $attributes = generate_attributes($attributesAssocArray);
            $html = '<select '.$attributes.'>';
            foreach ($optionsArray as  $value => $name)
            {
                $isSelected = $value==$selected ? " selected" : "";
                $html.= '<option value="'.$value.'"'.$isSelected.'>'.$name.'</option>';
            }
            $html.='</select>';
            return $html;
        }

        function generate_attributes($attributesAssocArray)
        {
            $attributes='';
            foreach ($attributesAssocArray as $name => $value)
            {
                $attributes.= $name.'="'.$value.'" ';
            }
            return $attributes;
        }
?>