0

而不是这一行 50 次

<option value="<?php echo $settings_profile_not_set;?>" <?php if($display_profile['1'] == $settings_profile_one) { echo "selected"; }?>>
    <?php echo $settings_profile_one;?>
</option>

对于每个选项,我想以循环方式执行此操作。这是我的例子:

<select name="profile_height">
<?php 
if ($display_profile['height'] == $settings_profile_not_set) 
{
?>
    <option value="<?php echo $settings_profile_not_set;?>" <?php if($display_profile['height'] == $settings_profile_not_set) { echo "selected"; }?>><?php echo $settings_profile_not_set;?></option>
<?php        
    //Function which displays all the centimeters that are available    
    for( $i=144; $i<=210; $i++ )
    {
        echo '<option value="';
        echo $i;
        echo '">';
        echo $i;
        echo "</option>";    

    }    
} else {
?>    
    <option value="<?php echo $settings_profile_not_set;?>"><?php echo $settings_profile_not_set;?></option>
<?php    
    for( $i=144; $i<=210; $i++ )
    {
        echo '<option value="';
        echo $i;
        echo '" ';
        if($display_profile['height'] == $i) {
            echo '"selected"';
        }
        echo ' >';
        echo $i;
        echo "</option>";    
    }
}
?>
</select>

现在它打印出所有数字,但从数据库读取时不会打印出选定的数字。我知道我在某处做错了什么,但可以提出建议,并给出工作示例。

提前感谢

4

3 回答 3

0

这是一段旧代码,可能会让你更容易

echo Series_drop_down_box_options(144, 210, $display_profile['height']);

function Series_drop_down_box_options($start,$end,$default="",$step=1,$packed=0,$packed_char="0") 
{
        $output = '';
        if( (is_integer($start)) && (is_integer($end)) )
        {
                if($start<$end)
                {
                        for($i=$start;$i<=$end;$i+=$step)
                        { 
                                if($packed>0)
                                {
                                        $value=str_pad($i, $packed, $packed_char, STR_PAD_LEFT);
                                }
                                else
                                {
                                        $value=$i;
                                }
                                $output.= '<option value="';
                                $output.= $value;
                                if ($default==$value)
                                {
                                        $output.= '" selected>';
                                }
                                else
                                {
                                        $output.= '">';
                                }
                                $output.= $value;
                                $output.= '</option>';
                                $output.= "\n";
                        }
                }
                else
                {
                        for($i=$start;$i<=$end;$i-=$step)
                        { 
                                if($packed>0)
                                {
                                        $value=str_pad($i, $packed, $packed_char, STR_PAD_LEFT);
                                }
                                else
                                {
                                        $value=$i;
                                }
                                $output.= '<option value="';
                                $output.= $value;
                                if ($default==$value)
                                {
                                        $output.= '" selected>';
                                }
                                else
                                {
                                        $output.= '">';
                                }
                                $output.= $value;
                                $output.= '</option>';
                                $output.= "\n";
                        }
                }
        }
        if( (is_string($start)) && (is_string($end)) )
        {
                $chr_start=ord($start);
                $chr_end=ord($end);
                if($chr_start<$chr_end)
                {
                        for($i=$chr_start;$i<=$chr_end;$i+=$step)
                        { 
                                $letter=chr($i);
                                $output.= '<option value="';
                                $output.= $letter;
                                if ($default==$letter)
                                {
                                        $output.= '" selected>';
                                }
                                else
                                {
                                        $output.= '">';
                                }
                                $output.= $letter;
                                $output.= '</option>';
                                $output.= "\n";
                        }
                }
                else
                {
                        for($i=$chr_start;$i<=$chr_end;$i-=$step)
                        { 
                                $letter=chr($i);
                                $output.= '<option value="';
                                $output.= $letter;
                                if ($default==$letter)
                                {
                                        $output.= '" selected>';
                                }
                                else
                                {
                                        $output.= '">';
                                }
                                $output.= $letter;
                                $output.= '</option>';
                                $output.= "\n";
                        }
                }
        }
        if( (is_array($start)) && (is_array($end)) )
        {
                $limit=min(sizeof($start),sizeof($start));
                for($i=0;$i<$limit;$i++)
                { 
                        $output.= '<option value="';
                        $output.= $start[$i];
                        if ($default==$start[$i])
                        {
                                $output.= '" selected>';
                        }
                        else
                        {
                                $output.= '">';
                        }
                        $output.= $end[$i];
                        $output.= '</option>';
                        $output.= "\n";
                }

        }

        return $output;
}
于 2012-08-17T11:24:12.500 回答
0

我修复了您的原始代码:太多echo,我添加了属性selected

<select name="profile_height">
<?php 
if ($display_profile['height'] == $settings_profile_not_set) 
{
?>
    <option value="<?php echo $settings_profile_not_set;?>" <?php if($display_profile['height'] == $settings_profile_not_set) { echo "selected"; }?>><?php echo $settings_profile_not_set;?></option>
<?php        
    //Function which displays all the centimeters that are available    
    for( $i=144; $i<=210; $i++ )
    {
        echo "<option value='$i'>$i</option>";
    }    
} else {
?>    
    <option value="<?php echo $settings_profile_not_set;?>"><?php echo $settings_profile_not_set;?></option>
<?php    
    for( $i=144; $i<=210; $i++ )
    {
        echo "<option value='$i'";
        if($display_profile['height'] == $i) {
            echo ' selected="selected"';
        }
        echo ">$i</option>";
    }
}
?>
</select>
于 2012-08-17T13:31:39.543 回答
0

这是工作代码:) Thanx Waygood

<?php echo  Series_drop_down_box_options(144, 210, $display_profile['height']); ?>

然后在下面起作用=)

<?php function series_drop_down_box_options($start,$end,$default="",$step=1,$packed=0,$packed_char="0") {
    $output = '';
    echo '<option value="Not set">Not set</option>';
    if( (is_integer($start)) && (is_integer($end)) )
    {
            if($start<$end)
            {
                    for($i=$start;$i<=$end;$i+=$step)
                    { 
                            if($packed>0)
                            {
                                    $value=str_pad($i, $packed, $packed_char, STR_PAD_LEFT);
                            }
                            else
                            {
                                    $value=$i;
                            }
                            $output.= '<option value="';
                            $output.= $value;
                            if ($default==$value)
                            {
                                    $output.= '" selected>';
                            }
                            else
                            {
                                    $output.= '">';
                            }
                            $output.= $value;
                            $output.= '</option>';
                            $output.= "\n";
                    }
            }
            else
            {
                    for($i=$start;$i<=$end;$i-=$step)
                    { 
                            if($packed>0)
                            {
                                    $value=str_pad($i, $packed, $packed_char, STR_PAD_LEFT);
                            }
                            else
                            {
                                    $value=$i;
                            }
                            $output.= '<option value="';
                            $output.= $value;
                            if ($default==$value)
                            {
                                    $output.= '" selected>';
                            }
                            else
                            {
                                    $output.= '">';
                            }
                            $output.= $value;
                            $output.= '</option>';
                            $output.= "\n";
                    }
            }
    }
    if( (is_string($start)) && (is_string($end)) )
    {
            $chr_start=ord($start);
            $chr_end=ord($end);
            if($chr_start<$chr_end)
            {
                    for($i=$chr_start;$i<=$chr_end;$i+=$step)
                    { 
                            $letter=chr($i);
                            $output.= '<option value="';
                            $output.= $letter;
                            if ($default==$letter)
                            {
                                    $output.= '" selected>';
                            }
                            else
                            {
                                    $output.= '">';
                            }
                            $output.= $letter;
                            $output.= '</option>';
                            $output.= "\n";
                    }
            }
            else
            {
                    for($i=$chr_start;$i<=$chr_end;$i-=$step)
                    { 
                            $letter=chr($i);
                            $output.= '<option value="';
                            $output.= $letter;
                            if ($default==$letter)
                            {
                                    $output.= '" selected>';
                            }
                            else
                            {
                                    $output.= '">';
                            }
                            $output.= $letter;
                            $output.= '</option>';
                            $output.= "\n";
                    }
            }
    }
    if( (is_array($start)) && (is_array($end)) )
    {
            $limit=min(sizeof($start),sizeof($start));
            for($i=0;$i<$limit;$i++)
            { 
                    $output.= '<option value="';
                    $output.= $start[$i];
                    if ($default==$start[$i])
                    {
                            $output.= '" selected>';
                    }
                    else
                    {
                            $output.= '">';
                    }
                    $output.= $end[$i];
                    $output.= '</option>';
                    $output.= "\n";
            }

    }

    return $output;
}?>

祝大家好运!=)

于 2012-08-17T11:54:21.177 回答