• Home
  • Forum
  • Fare Web
  • PHP

Foreach PHP

  • Creatore Discussione Creatore Discussione Fabio90
  • Data di inizio Data di inizio 12 Mar 2012
F

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
  • 12 Mar 2012
  • #1
PHP:
<ul id="link">
       <?php foreach ($menu as $k => $v) { ?>
          <li><a href="<?php echo $k ?>"><?php echo $v ?> </a></li>
       <?php } ?>
</ul>

<?php
$menu = array("/BiesseCar/carrozzeria.php" => "Carrozzeria", "/BiesseCar/allestimento-veicoli.php" => "Allestimento Veicoli" , "/BiesseCar/veicoli-speciali.php" => "Veicoli Speciali" );
?>

Un saluto a tutti. Il foreach funziona correttamente. Volevo sapere come assegnare alle voci del menu "Allestimento Veicoli" e "Veicoli Speciali" rispettivamente le classi "allestimento" e "veicoli".
 
Ultima modifica di un moderatore: 12 Mar 2012

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 12 Mar 2012
  • #2
ciao
scusa non capisco bene, ma vorresti una cosa del genere (i punti li ho messi solo per distanziale)?

carrozzeria
....Carrozzeria
allestimento
....Allestimento veicoli
veicoli
....Veicoli speciali
Clicca per allargare...

se è così potresti provare a fare array di array (lo scrivo esteso)
PHP:
<?php
$menu['carrozzeria']['/BiesseCar/carrozzeria.php']="Carrozzeria";
$menu['allestimento']['/BiesseCar/allestimento-veicoli.php']="Allestimento Veicoli";
$menu['veicoli']['/BiesseCar/veicoli-speciali.php']="Veicoli Speciali";
//.....
foreach($menu as $chiave => $valore){
	echo "<ul id="link">";
	echo "<li>$chiave</li>";
	echo "<ul id="link">";
	foreach($valore as $k => $v){
		echo "<li><a href=\"$k\">$v</a></li>";
	}
	echo "</ul>";
	echo "</ul>";
}
?>


p.s.
racchiudi sempre il codice tra gli appositi tag
 
F

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
  • 12 Mar 2012
  • #3
grazie della risposta!
Cmq non è proprio quello che intendevo. Volevo assegnare delle classi al secondo e terzo elemento del menù in modo da dargli un margin left tot px e distanziarli quanto voglio. Ora il menù lo vedo in questo modo:

CARROZZERIA(px default) ALLETIMENTO (px default) VEICOLI SPECIALI

invece vorrei vederlo così

CARROZZERIA (200px margin left) ALLESTIMENTO (200px margin-left) VEICOLI SPECIALI

Per questo pensavo a mettere le classi ad allestimento e veicoli
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 12 Mar 2012
  • #4
ciao
intendi una cosa del genere
HTML:
<head>
<style>
.oriz{
display:inline;}
</style>
</head>

<body>
<ul>
  <li class="oriz"> uno </li>
  <li class="oriz"> due </li>
  <li class="oriz"> tre </li>
</ul>
</body>
questo da
uno due tre
Clicca per allargare...
 
F

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
  • 12 Mar 2012
  • #5
si esatto è quello il risultato che voglio ottenere. Vorrei sapere come dare le classi css agli elementi del foreach
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 12 Mar 2012
  • #6
Struttura l'array così:
PHP:
<?php
$menu = array(
    array(
        'link'  => 'http://www.example.com',
        'name'  => 'Link 1',
        'class' => null,
    ),

    array(
        'link'  => 'http://www.example.net',
        'name'  => 'Link 2',
        'class' => 'class1',
    ),

    array(
        'link'  => 'http://www.example.org',
        'name'  => 'Link 3',
        'class' => 'class3',
    ),
);

echo <<<'EOD'
<ul>
EOD;

foreach ($menu as $item) {
    $class = '';
    if ($item['class'] != null) {
        $class = sprintf(' class="%s"', $item['class']);
    }

    echo <<<EOD
    <li>
        <a href="{$item['link']}"{$class}>{$item['name']}</a>
    </li>
EOD;
}

echo <<<'EOD'
</ul>
EOD;
?>
 
F

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
  • 12 Mar 2012
  • #7
Gli EOD danno degli errori..
 
F

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
  • 12 Mar 2012
  • #8
Come non detto funziona tutto!! E' dreamweaver che è stupido grazie mille!!
Un'altra domanda. Come faccio a far si che sia evidenziata una voce del menu? Tipo quando sono sulla pagina carrozzeria si colora la parola di rosso ecc..
 
Ultima modifica: 12 Mar 2012

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 12 Mar 2012
  • #9
Prova a modificare il foreach così:
PHP:
foreach ($menu as $item) {
    $classes = array($item['class']);
    if ($_SERVER['REQUEST_URI'] == $item['link']) {
        $classes[] = 'active';
    }

    $classes = implode(' ', $classes);

    echo <<<EOD
    <li>
        <a href="{$item['link']}" class="{$classes}">{$item['name']}</a>
    </li>
EOD;
}
Sappi che questo funzionerà solamente se il valore link si trova esattamente dopo il dominio del sito. Ad esempio, se hai una voce che punta a /sezione/pagina1.php, la voce avrà la classe active se l'URL nella barra degli indirizzi è: http://www.example.com/sezione/pagina1.php.
 
F

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
  • 13 Mar 2012
  • #10
grazie mille funziona!! E per far si che funziona anche a livelli che non sono subito dopo il dominio?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 13 Mar 2012
  • #11
Prova così:
PHP:
<?php
$routerPath = '';
$menu = array(
    array(
        'link'  => 'http://www.example.com',
        'name'  => 'Link 1',
        'class' => null,
    ),

    array(
        'link'  => 'http://www.example.net',
        'name'  => 'Link 2',
        'class' => 'class1',
    ),

    array(
        'link'  => 'http://www.example.org',
        'name'  => 'Link 3',
        'class' => 'class3',
    ),
);

echo <<<'EOD'
<ul>
EOD;

foreach ($menu as $item) {
    $classes = array($item['class']);
    if ($_SERVER['REQUEST_URI'] == $routerPath . $item['link']) {
        $classes[] = 'active';
    }

    $classes = implode(' ', $classes);

    echo <<<EOD
    <li>
        <a href="{$item['link']}" class="{$classes}">{$item['name']}</a>
    </li>
EOD;
}

echo <<<'EOD'
</ul>
EOD;
?>
E imposta alla variabile $routerPath il valore prima del vero URL (comprensivo di slash finale, se c'è).
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

I
Eecuzione di javascript in ciclo foreach php.
  • inftecnica
  • 25 Ott 2020
  • PHP
Risposte
7
Visite
2K
PHP 28 Ott 2020
inftecnica
I
P
Jquery event nel foreach php
  • Phelps
  • 22 Mar 2019
  • jQuery
Risposte
3
Visite
2K
jQuery 21 Apr 2019
otto9due
S
[PHP] Ciclo foreach su più array
  • samurai.sette
  • 11 Dic 2018
  • PHP
Risposte
2
Visite
4K
PHP 12 Dic 2018
marino51
[PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli
  • maxnegri
  • 22 Set 2018
  • PHP
Risposte
18
Visite
5K
PHP 25 Set 2018
maxnegri
[PHP] Popolamento database con form ricorsivi - problema array (foreach )
  • alessandra86
  • 28 Giu 2018
  • PHP
Risposte
5
Visite
3K
PHP 12 Lug 2018
alessandra86
M
[PHP] Errore in ciclo foreach
  • migo80
  • 13 Ago 2016
  • PHP
Risposte
1
Visite
2K
PHP 14 Ago 2016
migo80
M
V
Somma foreach
  • Vincanto
  • 21 Giu 2021
  • PHP
Risposte
2
Visite
1K
PHP 21 Giu 2021
macus_adi
Z
problemi con foreach insert into
  • Zhilang
  • 6 Feb 2021
  • PHP
Risposte
10
Visite
2K
PHP 7 Feb 2021
illiterate2020
I
P
Passare i risultati di un foreach in un modal. Help!
  • Phelps
  • 5 Gen 2021
  • PHP
Risposte
2
Visite
2K
PHP 5 Gen 2021
Phelps
P
P
Array da foreach
  • PaoloG
  • 24 Set 2020
  • PHP
Risposte
2
Visite
1K
PHP 24 Set 2020
PaoloG
P
T
foreach e fetchAll dove recupero solo l'ultimo record
  • twogate
  • 2 Set 2020
  • PHP
Risposte
5
Visite
1K
PHP 3 Set 2020
twogate
T
foreach explode query
  • Alex_70
  • 27 Mag 2020
  • PHP
Risposte
3
Visite
1K
PHP 27 Mag 2020
macus_adi
S
Unire due foreach simili
  • sunlightbanana
  • 29 Mar 2016
  • PHP
Risposte
5
Visite
2K
PHP 30 Mar 2016
sunlightbanana
S
M
Problema con ciclo foreach per chiusura apertura div in base al numero di record in database
  • migo80
  • 21 Nov 2015
  • PHP
Risposte
1
Visite
2K
PHP 22 Nov 2015
migo80
M
L
Estrarre e muovere un campo da un foreach
  • leonte54
  • 10 Nov 2015
  • PHP
Risposte
0
Visite
958
PHP 10 Nov 2015
leonte54
L
C
query dentro foreach
  • claudiovis
  • 9 Nov 2015
  • PHP
Risposte
1
Visite
1K
PHP 9 Nov 2015
borgo italia
Warning: Invalid argument supplied for foreach()
  • JackIlPazzo
  • 3 Ago 2015
  • PHP
Risposte
1
Visite
1K
PHP 4 Ago 2015
borgo italia
Problema if elseif o foreach.. o non capisco cosa non funzioni..
  • otto9due
  • 8 Mag 2015
  • PHP
Risposte
4
Visite
2K
PHP 8 Mag 2015
otto9due
Questione di array.. I risultato del foreach non è quello che voglio..
  • otto9due
  • 5 Mag 2015
  • PHP
Risposte
4
Visite
2K
PHP 7 Mag 2015
otto9due
Problema inserimento ciclo foreach o while in variabile
  • otto9due
  • 10 Apr 2015
  • PHP
Risposte
1
Visite
1K
PHP 14 Apr 2015
otto9due
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?