2

一个 php 文件将从使用的表单接收 1 到 30 之间的变量

 $style = $_GET['style'];

然后我想通过 $style 来帮助我选择用户选择的 css stlye,例如,如果选择的是 style 3,那么 css stlye 3 将被传递给这样的图像

<img style="<?php $choice3?>";  src="xxx.png" />

所以到目前为止我所拥有的是这个

<?php
 $style = $_GET['style'];

function choice1()
{
$choice1 = "display: block;padding:5px; etc, etc etc";
      return $choice1;      }   
function choice2()
{
$choice2 = "display: block;padding:10px; etc, etc etc";
    return $choice2;        }   
function choice3()
{
$choice3 = "display: block;padding:20px; etc, etc etc";
    return $choice3;        }   

if ($style == 1){
?>
<img style="<?php $choice1?>";  src="xxx.png" />
<?php 
}
if ($style == 2){
?>
<img style="<?php $choice2?>";  src="xxx.png" />
<?php 
}
.......and so on till 30        
?>                  

我很确定有一种更简单、更智能的方式来表达我的逻辑。

4

5 回答 5

6

数组呢?在使用下面的代码之前,不要忘记检查它$style是否在正确的范围内。

<?php
$style = $_GET['style'];
$styles = array(
  1=>"display: block;padding:5px; etc, etc etc",
  2=>"display: block;padding:15px; etc, etc etc",
  3=>"display: block;padding:35px; etc, etc etc",
  4=>"display: block;padding:55px; etc, etc etc",
  // etc.
);
?>

<img style="<?php echo $styles[$style]; ?>";  src="xxx.png" />
于 2013-08-13T15:16:04.363 回答
0

我会改变你的函数来处理所有的边界,而不是有多个这样的东西:

  function border($style){
  switch ($style) {
    case 0:
        $border = "display: block;padding:5px; etc, etc etc";
        break;
    case 1:
        $border = "display: block;padding:5px; etc, etc etc";
        break;
    case 2:
        $border = "display: block;padding:5px; etc, etc etc";
        break;
    default:
        $border = "display: block;padding:5px; etc, etc etc";
   }
   return $border;
  }
于 2013-08-13T15:18:04.033 回答
0

我可能会这样设置:

$myStyles = new Array();
$myStyles[0] = "display: block;padding:5px; etc, etc etc";
$myStyles[1] = "display: block;padding:10px; etc, etc etc";

ETC...

function getStyles($style){
      return $myStyles[$style - 1];
}

<img style="<?php echo getStyles($_GET['style']; ?>";  src="xxx.png" />

没有测试...

于 2013-08-13T15:29:14.803 回答
0

似乎只有填充值在变化,为什么你不尝试这个:

 $style = $_GET['style'];

    <img style="display: block;padding:<?php echo $choice3; ?>px;"  src="xxx.png" />
于 2013-08-13T15:17:44.230 回答
0

我认为您的代码看起来不错 - 但需要在 var 之前打印/回显。

<img style="<?php print $choice2; ?>" src="..." />

此外,您可以尝试使用 switch 语句。

- - - 编辑 - - -

我不会应用样式,而是传递一个类名。

<img class="<?php print $choice2; ?>" src="..." />

然后,您始终可以在样式表中指定 CSS 而不是内联。

于 2013-08-13T15:20:40.107 回答