所以,我跟着重复使用不同值的代码:
<select placeholder="Any Max number" name="sp_maxprice" id="sp_maxprice" class="btn-block">
<option <?php selected('50000000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="50000000"><?php _e('No Max', 'my_site') ?></option>
<option <?php selected('25000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="25000">25,000</option>
<option <?php selected('50000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="50000">50,000</option>
<option <?php selected('75000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="75000">75,000</option>
<option <?php selected('100000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="100000">100,000</option>
</select>
正如您所看到的那样,选项非常相似,只有25,000
从第一个选项开始增加,除了第一个选项。
有没有办法压缩这些代码?这个数字实际上一直到10,000,000
,并且数字值除外38 similar codes
。
这些感觉就像是一种无效的编码方式。
任何帮助将不胜感激!
由于
答案 0 :(得分:3)
更改
<select placeholder="Any Max number" name="sp_maxprice" id="sp_maxprice" class="btn-block">
<option <?php selected('50000000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="50000000"><?php _e('No Max', 'my_site') ?></option>
<option <?php selected('25000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="25000">25,000</option>
<option <?php selected('50000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="50000">50,000</option>
<option <?php selected('75000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="75000">75,000</option>
<option <?php selected('100000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="100000">100,000</option>
类似
<?php
$opts = array(
50000000 => _e('No Max', 'my_site'),
25000 => '25,000',
50000 => '50,000',
...
);
?>
<select placeholder="Any Max number" name="sp_maxprice" id="sp_maxprice" class="btn-block">
<?php if( $_POST['sp_maxprice'] == $value ) {
$selected = 'selected="selected"';
}else{
$selected = '';
}
foreach( $opts as $value => $caption ){
?>
<option value="<?php echo $value; ?>" $selected ><?php echo $caption; ?></option>
<?php } ?>
</select>
答案 1 :(得分:2)
尝试这样的事情
<select placeholder="Any Max number" name="sp_maxprice" id="sp_maxprice" class="btn-block">
<option <?php selected('50000000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : ''); ?> value="50000000"><?php _e('No Max', 'my_site') ?></option>
<?php
for($i=25000; $i<=1000000; $i+=25000) {
echo '<option '. selected($i, isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : '') . ' value='.$i.'>'.number_format($i, 0).'</option>';
}
?>
</select>
答案 2 :(得分:1)
<select placeholder="Any Max Price" name="sp_maxprice" id="sp_maxprice" class="btn-block">
<?php
$val = 25000;
do {
echo '<option '. selected('50000000', isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : '') .' value="50000000">'. _e('No Max', 'my_site') .'</option>';
} while ($val < 100000){
echo '<option '. selected($val, isset($_GET['sp_maxprice']) ? $_GET['sp_maxprice'] : '') .' value="'. $val .'">'. $val .'</option>';
$val = $val + 25000;
}
?>
</select>
这可能符合:)