[PHP] Tabel id afhankelijk van geklikte link

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sorry voor de beetje vage topictitel maar ik kon niet bedenken hoe ik mijn probleem moest benoemen.

Ik heb de volgende code voor de navigatie van mijn site:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<tr><?php
            echo
    "<td id=\"current\"><a href=\"index.php\">Home</a></td>" .
    "<td><a href=\"{$_SERVER['PHP_SELF']}?action=nieuws\">Nieuws</a></td>" .
    "<td><a href=\"{$_SERVER['PHP_SELF']}?action=derally\">De Rally</a></td>" .
    "<td><a href=\"{$_SERVER['PHP_SELF']}?action=deelnemers\">Deelnemers</a></td>" .
    "<td><a href=\"{$_SERVER['PHP_SELF']}?action=uitslagen\">Uitslagen</a></td>" .
    "<td><a href=\"{$_SERVER['PHP_SELF']}?action=fotogalerij\">Fotogalerij</a></td>" .
        "</tr>" .
        "<tr>" .
      "<td><a href=\"{$_SERVER['PHP_SELF']}?action=pers\">Pers</a></td>" .
      "<td><a href=\"{$_SERVER['PHP_SELF']}?action=sponsors\">Sponsors</a></td>" .
      "<td><a href=\"{$_SERVER['PHP_SELF']}?action=contact\">Contact</a></td>" .
     "<td><a href=\"{$_SERVER['PHP_SELF']}?action=links\">Links</a></td>" .
      "<td><a href=\"{$_SERVER['PHP_SELF']}?action=hoelangnog\">Hoe lang nog</a></td>"
            ?></tr>


Afhankelijk van welke link er wordt geklikt wordt ergens anders in de pagina een html ge-include. Voor de zekerheid ook maar even de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
    switch($_GET['action']) {
        // De links van het nieuws
        case 'nieuws':
            include("navigatie/nieuws.php");
            break;

        // De links van de rally
        case 'derally':
            include("navigatie/derally.php");
            break;

        // De links van de deelnemers
        case 'deelnemers':
            include("navigatie/deelnemers.php");
            break;

                                //etc etc etc
    }
    ?>


Mijn probleem bevindt zich in het bovenste stukje. Zoals je kan zien is de ID van de eerste kolom in de rij "current". Nou wil ik dat als ik op bijv. nieuws klik, de id van die kolom "current" wordt. Ik heb het idee dat dit niet al te lastig moet zijn, ik kan alleen niet bedenken hoe ik het moet doen. Alvast bedankt voor de hulp.

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 21-09 17:49

ripexx

bibs

Een simpele quick fix is gewoon een check te doen dmv een if statement. Maar dat nou echt bevordelijk is voor je code is maar de vraag. Daarnaast kan je dit ook dmv JS oplossen.

Maar zo te zien is je menu niet echt variabel dus waarom zou je dat door php laten afhangen? Die PHP_SELF is namelijk nergens voor nodig.

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoe zou ik dit dan kunnen doen in JS? Laat dat nou net een taal zijn waar ik erg weinig ervaring in heb.

De PHP_SELF kan inderdaad ook 'hard' ingegeven worden, maar dat maakt in principe toch niets uit voor performence e.d.?

Ik zou zelf graag willen zoeken op sites waar ik wat meer JS kan leren, maar ik weet niet hoe ik dit moet noemen, dus dat zou eindeloos zoeken worden.

Acties:
  • 0 Henk 'm!

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 26-06-2024
Misschien zoiets in PHP?
code:
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
<?php

 $include_array = array ('nieuws' => 'navigatie/nieuws.php', 'derally' => 'navigatie/derally.php', .....)
 
 if isset($_GET['action']) {
  if isset($include_array[$_GET['action']]) {
   include($include_array[$_GET['action']]);
  }
 }

 $page_array = array ('nieuws' => 'Nieuws', 'derally' => 'De Rally', .....)

 print '<tr>';
 
 foreach ($page_array as $page_id => $page_name) {
  if ($_GET['action'] == $page_id) {
   print '<td id="current"><a href="'.$_SERVER['PHP_SELF'].'?action='.$page_id.'">'.$page_name.'</a></td>';
  } else {
   print '<td><a href="'.$_SERVER['PHP_SELF'].'?action='.$page_id.'">'.$page_name.'</a></td>';
  }
 }
 
 print '</tr>';

?>


(heb 't ff snel getikt.... spel/type/syntax fouten voorbehouden)