2017-03-16 75 views
-5

有没有办法缩短这段代码?这是一个覆盆子pi控制面板。我将在稍后添加这些功能,但现在我的主要目标是缩短它的功能。有人可以看看我的代码,也许使它更短

<form action="" method="post"> 
<?php 
if (!isset($_POST["submit"])) { 
    $lamp1 = "uit"; 
    $lamp2 = "uit"; 
    $lamp3 = "uit"; 
    $lamp4 = "uit"; 
    $lamp5 = "uit"; 
} 
else 
{ 
    $lamp1 = $_POST['lamp1']; 
    $lamp2 = $_POST['lamp2']; 
    $lamp3 = $_POST['lamp3']; 
    $lamp4 = $_POST['lamp4']; 
    $lamp5 = $_POST['lamp5']; 
    if($_POST['submit'] == " Slaapkamer ") 
    { 
     if($_POST['lamp1'] == "uit") 
     { 
      $lamp1 = "aan"; 
     } 
     else 
     { 
      $lamp1 = "uit"; 
     } 
    } 
    else if($_POST['submit'] == " Badkamer ") 
    { 
     if($_POST['lamp2'] == "uit") 
     { 
      $lamp2 = "aan"; 
     } 
     else 
     { 
      $lamp2 = "uit"; 
     } 
    } 
    else if($_POST['submit'] == " Woonkamer ") 
    { 
     if($_POST['lamp3'] == "uit") 
     { 
      $lamp3 = "aan"; 
     } 
     else 
     { 
      $lamp3 = "uit"; 
     } 
    } 
    else if($_POST['submit'] == " Keuken ") 
    { 
     if($_POST['lamp4'] == "uit") 
     { 
      $lamp4 = "aan"; 
     } 
     else 
     { 
      $lamp4 = "uit"; 
     } 
    } 
    else if($_POST['submit'] == " WC ") 
    { 
     if($_POST['lamp5'] == "uit") 
     { 
      $lamp5 = "aan"; 
     } 
     else 
     { 
      $lamp5 = "uit"; 
     } 
    } 


} 

?> 
<ul> 
    <li><input type="submit" name="submit" value=" Slaapkamer "></li> 
    <input type="hidden" name="lamp1" value=<?php echo $lamp1; ?>> 
    <li><?php echo 'Slaapkamer licht: '.$lamp1; ?></li> 
    <li><input type="submit" name="submit" value=" Badkamer "></li> 
    <input type="hidden" name="lamp2" value=<?php echo $lamp2; ?>> 
    <li><?php echo 'Badkamer licht: '.$lamp2; ?></li> 
    <li><input type="submit" name="submit" value=" Woonkamer "></li> 
    <input type="hidden" name="lamp3" value=<?php echo $lamp3; ?>> 
    <li><?php echo 'Woonkamer licht: '.$lamp3; ?></li> 
    <li><input type="submit" name="submit" value=" Keuken "></li> 
    <input type="hidden" name="lamp4" value=<?php echo $lamp4; ?>> 
    <li><?php echo 'Keuken licht: '.$lamp4; ?></li> 
    <li><input type="submit" name="submit" value=" WC "></li> 
    <input type="hidden" name="lamp5" value=<?php echo $lamp5; ?>> 
    <li><?php echo 'WC licht: '.$lamp5; ?></li> 
</ul> 
</form> 

此代码将在一个基于Web的应用程序来控制我的家。

+1

http://codereview.stackexchange.com/ – nogad

回答

0

只给你的,如何缩短事情为例:

<?php 

$kamers = [ 
    'Slaapkamer'=>['lamp'=>1,'status'=>'uit'], 
    'Badkamer'=>['lamp'=>2,'status'=>'uit'], 
    'Woonkamer'=>['lamp'=>3,'status'=>'uit'], 
    'Keuken'=>['lamp'=>4,'status'=>'uit'], 
    'WC'=>['lamp'=>5,'status'=>'uit'] 
]; 

$htmlKamers = ''; 
$htmlKamers .= '<div>'; 
foreach($kamers as $kamer=>$data) { 
    $lightStatus = isset($_POST['lamp'.$data['lamp']]) && $_POST['lamp'.$data['lamp']] == 'uit' ? 'aan' : 'uit'; 
    $elemChecked = $lightStatus === 'aan' ? 'checked': ''; 
    $htmlKamers .= '<input type="checkbox" name="lamp'.$data['lamp'].'" value="'.$lightStatus.'" '.$elemChecked.'> '.$kamer.' ('.$lightStatus.')<br/>'; 
} 
$htmlKamers .= '</div>'; 

?> 
<form method="post"> 
    <input type="hidden" name="lamp1" value="aan"> 
    <?php echo $htmlKamers;?> 
    <button type="submit">Send</button> 
</form> 
+0

TNX :)我喜欢这种方式与复选框 –

相关问题