deel array vetdrukken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sven Onbekend

Sven Onbekend

27/08/2009 17:53:00
Quote Anchor link
Hoe kan ik met onderstaande code het actieve jaar vet laten drukken?

Ik kom niet verder dan if($_GET['j'] == $arr_jaar) of ipv $arr_jaar, $jaar.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$arr_jaar
= array(2009,2008,2007);
    
foreach($arr_jaar as $jaar) {
    echo "<a href=\"index.php?pagina=foto&menuid=61&j=".$jaar."\" class=\"nieuwslvlink\" title=\"Bekijk de foto's uit ".$jaar."\">";
        if($_GET['j'] == $arr_jaar) { echo "<b>".$jaar."</b>"; }else{ echo $jaar; }
    echo "</a>&nbsp;&nbsp;|&nbsp;&nbsp;";
}

    
echo "<a href=\"index.php?pagina=foto&menuid=61&j=2006\" class=\"nieuwslvlink\" title=\"Bekijk de foto's uit 2006\">";
    if($_GET['j'] == 2006) { echo "<b>2006</b>"; }else{ echo "2006"; }
echo "</a><br><br>";
?>
Gewijzigd op 01/01/1970 01:00:00 door Sven Onbekend
 
PHP hulp

PHP hulp

14/05/2024 18:46:13
 
- SanThe -

- SanThe -

27/08/2009 17:58:00
Quote Anchor link
if($_GET['j'] == $jaar)
 
Sven Onbekend

Sven Onbekend

27/08/2009 18:04:00
Quote Anchor link
Ik weet niet wat ik fout gedaan heb net, maar ik had if($_GET['j'] == $jaar) net geprobeerd :s...

misschien maar ff wat anders gaan doen dan achter de pc zitten (A)

thanx SanThe :)
 
Eddy E

Eddy E

27/08/2009 18:10:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
// 2006 gewoon als een gewoon jaar behandelen
$arr_jaar = array(2006, 2009,2008,2007);
    
// alle getallen afgaan als jaar
foreach($arr_jaar as $jaar)
    {

    echo '<a href="index.php?pagina=foto&menuid=61&j='.$jaar.'" class="nieuwslvlink" title="Bekijk de foto\'s uit '.$jaar.'">';
    
    // is het $jaar hetzelfde als het opgegeven jaar (via $_GET['j'])
    if($jaar == intval($_GET['j']))
        {

        echo '<b>';
        }

        
    // echo het jaar
    echo $jaar;
    
    // is het $jaar hetzelfde als het opgegeven jaar (via $_GET['j'])
    if($jaar == intval($_GET['j']))
        {

        echo '</b>';
        }
    
    
    echo '</a>&nbsp;&nbsp;|&nbsp;&nbsp;';
    }

?>
 
Sven Onbekend

Sven Onbekend

27/08/2009 18:42:00
Quote Anchor link
@ Eddy Erkelens

dan komt 2006 vooraan te staan en staat er achteraan '&nbsp;&nbsp;|', dat vind ik lelijk, vandaar 2006 apart behandeld.

Verder doe je precies hetzelfde, alleen jou versie is langer?
 
- SanThe -

- SanThe -

27/08/2009 18:48:00
Quote Anchor link
sven schreef op 27.08.2009 18:42:
@ Eddy Erkelens

dan komt 2006 vooraan te staan en staat er achteraan '&nbsp;&nbsp;|', dat vind ik lelijk, vandaar 2006 apart behandeld.

Verder doe je precies hetzelfde, alleen jou versie is langer?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$arr_jaar
= array(2006, 2009,2008,2007);
sort($arr_jaar);
?>

En die '&nbsp;&nbsp;|' zet je er zelf achter.
 
Sven Onbekend

Sven Onbekend

27/08/2009 18:50:00
Quote Anchor link
SanThe schreef op 27.08.2009 18:48:
En die '&nbsp;&nbsp;|' zet je er zelf achter.


Ja dat klopt, maar in mijn versie niet achter de laatste ;)
 
- SanThe -

- SanThe -

27/08/2009 18:55:00
Quote Anchor link
Kan je ook een tellertje laten meelopen. Zolang het tellertje kleiner is dan count($arr_jaar) echo, anders niet.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Sven Onbekend

Sven Onbekend

27/08/2009 19:11:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
$arr_jaar
= array(2009,2008,2007,2006);

echo count($arr_jaar);
// resultaat: 4
?>


Hoe pas ik dat dan op de laatste regel toe?

echo '</a>&nbsp;&nbsp;|&nbsp;&nbsp;';
 
- SanThe -

- SanThe -

27/08/2009 19:28:00
Quote Anchor link
Even het script van Eddy Erkelens gebruikt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
// 2006 gewoon als een gewoon jaar behandelen
$arr_jaar = array(2006, 2009,2008,2007);
sort($arr_jaar);

// teller
$teller = 0;
    
// alle getallen afgaan als jaar
foreach($arr_jaar as $jaar)
{

    echo '<a href="index.php?pagina=foto&menuid=61&j='.$jaar.'" class="nieuwslvlink" title="Bekijk de foto\'s uit '.$jaar.'">';
    
    // is het $jaar hetzelfde als het opgegeven jaar (via $_GET['j'])
    if($jaar == intval($_GET['j']))
        {

        echo '<b>';
        }

        
    // echo het jaar
    echo $jaar;
    
    // is het $jaar hetzelfde als het opgegeven jaar (via $_GET['j'])
    if($jaar == intval($_GET['j']))
        {

        echo '</b>';
        }
    
    
    echo '</a>';
    $teller++;
    if($teller < count($arr_jaar))
    {

        echo '&nbsp;&nbsp;|&nbsp;&nbsp;';
    }
}

?>
 
- Mark -

- Mark -

27/08/2009 19:47:00
Quote Anchor link
Mijn versie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php        
    
    #| Geselecteerde jaar.
    
        $selected = (ctype_digit($_GET['j'])) ? $_GET['j'] : date('Y');
    
    
    #| Loop door alle jaren van 2006 tot het huidige jaar.
    
        foreach(range(2006,date('Y')) as $value)
        {
    
        
        #| Jaren weergeven.
        
            if($value == $selected)
            {

            
            #| Resultaat vetgedrukt weergeven als het gelijk is aan het geselecteerde jaar.    
                
                echo '<b><a href="index.php?pagina=foto&menuid=61&j='.$value.'" class="nieuwslvlink" title="Bekijk de foto\'s uit '.$value.'">'.$value.'</a></b>';
            
            }

            else
            {
            
            #| Resultaat normaal weergeven.
                
                echo '<a href="index.php?pagina=foto&menuid=61&j='.$value.'" class="nieuwslvlink" title="Bekijk de foto\'s uit '.$value.'">'.$value.'</a>';        
            
            }

        
        
        #| Devider weergeven.
        
            if($value < date('Y'))
            {

                echo '&nbsp;&nbsp;|&nbsp;&nbsp;';
            }

        }

        
?>
Gewijzigd op 01/01/1970 01:00:00 door - Mark -
 
- SanThe -

- SanThe -

27/08/2009 19:53:00
Quote Anchor link
@Mark: Nette variant.
 
Sven Onbekend

Sven Onbekend

28/08/2009 20:39:00
Quote Anchor link
@ Marc

Als ik jou variant copy-paste, laat die wel de linkjes en de devider zien, maar niet de jaartallen zelf.

Is ook logisch zie ik net (A).... je hebt de link niet helemaal uitgeschreven ;)... thanx voor het voorbeeld!
 
- Mark -

- Mark -

28/08/2009 21:09:00
Quote Anchor link
Oeps sorry dat had ik zelf nog niet eens gezien. Gisteren geen tijd meer om te testen. Ik heb hem aangepast.
Gewijzigd op 01/01/1970 01:00:00 door - Mark -
 
Eddy E

Eddy E

29/08/2009 08:46:00
Quote Anchor link
Voor dat spatie_spatie_streepje_spatie_spatie zou je ook implode() kunnen gebruiken.
Met als nadeel dat je de links eerst in een array moet/mag steken.
Voordeel is dan wel dat je het vetgedrukte dan makkelijker kan toevoegen. En dat je maar 1x de link noteert (scheelt werk bij aanpassingen).

Even voortbordurend op Mar, welke een nette code voorschotelt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php        
    
    #| Geselecteerde jaar.
    
        $selected = (ctype_digit($_GET['j'])) ? $_GET['j'] : date('Y');
        $array = array();
    
    
    #| Loop door alle jaren van 2006 tot het huidige jaar.
    
        foreach(range(2006,date('Y')) as $value)
        {
    
            $link = '<a href="index.php?pagina=foto&menuid=61&j='.$value.'" class="nieuwslvlink" title="Bekijk de foto\'s uit '.$value.'">'.$value.'</a>';
        
        
        #| Jaren weergeven.
        
            if($value == $selected)
            {

            
            #| Resultaat vetgedrukt weergeven als het gelijk is aan het geselecteerde jaar.    
                
            $array[] = '<b>'.$link.'</b>';
            
            }

            else
            {
            
            #| Resultaat normaal weergeven.
                
            $array[] = $link;      
            
            }
            
        }

        
echo implode("  |  ", $array);
        
?>


Eventueel kan je dan ook nog wat meer sorteren, maar dat lijkt me niet nodig (want dan zou je de for-loop wel aanpassen).
Wellicht iets korter in tekst, maar zal wel iets meer geheugen vragen (maar dat is geen probleem).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.