- Home
- Categorie
- Coding e Sistemistica
- PHP
- Consiglio per evitare if
-
Consiglio per evitare if
Ho uno script strutturato in questo modo:
un case che in base ad un parametro $_GET richiama diverse funzionalità, il risultato verrà poi stampato nella parte destra della pagina HTML, mentre nella parte a sinistra ho una serie di link tramite i quali scegliere le varie funzionalità.<?php switch ($_GET["function"]) { case "abc": ... $content=...; break; case "def": ... $content=...; break; } ?> <html> ... <body> <div id="col1"> <ul> <li><a href="...">...</a></li> <li><a href="...">...</a></li> <li><a href="...">...</a></li> </ul> </div> <div id="col2"><?php echo $content?></div> </body> ```Ora tramite css vorrei differenziare le voci del menu', in modo da identificare quella attiva. Solo che l'unico modo per farlo che mi e' venuto in mente è questo:
<?php
echo '<a ';
if ($_GET["function"] == "abc")
echo 'id="active"';
echo 'href="...">...</a>';
echo '<a ';
if ($_GET["function"] == "def")
echo 'id="active"';
echo 'href="...">...</a>';
...C'e' un modo per evitare di spezzare così il codice ed evitare quella fila di if?:wink3: Anticipatamente grazie.
-
nel ciclo case no?
-
Il fatto è che il case modifica la parte dei contenuti che compaiono a destra, mentre la colonna a sinistra si occupa dei menu'.
Potrei creare un array con le varia voci dei menu' generale:
menu[0]='<li> <a href="abc">abc</a></li>'; menu[1]='<li> <a href="abc">abc</a></li>'; ... ```E nel case di cui sopra, modifico solo la voce attiva in quel momento:
<?php
switch ($_GET["function"]) {
case "abc":
... $content=...;
menu[x]='<li> <a href="abc">abc</a></li>';
break;
case "def":
... $content=...;
menu[y]='<li> <a href="abc">def</a></li>';
break;
}
?>
<html>
...
<body>
<div id="col1">
<ul>
<?php ... forach e stampo tutte le voci ...?>
</ul>
</div>
<div id="col2"><?php echo $content?></div>
</body>
-
nessun arrocchio;
I cicli servono proprio per eventuali situazioni che si vengono a creare il case più di tutti è utile per le multiscelte e le operazioni legate ad esse