Toon posts:

[HTML] Template neemt link niet aan

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben juist begonnen met templates in php aangezien ik vond dat het tijd werd. Nu zit ik met een probleempje. Ik ben een beetje aan het experimenteren met een menu en block assignment. Dit is mijn code:

index.php
code:
1
2
3
4
5
6
7
8
9
10
  $mainMenuItem = array('Homepage','Categories', 'Archive', 'Files', 'Forum', 'Pictures', 'Calender', 'Contact');
  $mainMenuURL = array('index.php','categories.php', 'archive.php', 'files.php', 'forum.php', 'pictures.php', 'calender.php', 'contact.php');
  
  for ($i = 0; $i < count($mainMenuItem); $i++) {
  
    $tpl->newBlock('mainMenu');
    $tpl->assign('mainMenuItem', $mainMenuItem[$i]);
    $tpl->assign('mainMenuURL', $mainMenuURL[$i]);
  
  }


index.tpl
code:
1
2
3
          <!-- START BLOCK : mainMenu -->
          » <a href="index.php">{mainMenuItem}</a><br>
          <!-- END BLOCK : mainMenu -->


Het probleem is dat hij niet werkt als een link. Hij krijgt wel de zelfde style (wordt onderlijnt enzo) maar je kan er niet op klikken.. Als ik naar de code in de webbrowser kijk krijg ik wel de juiste code voor een hyperlink te zien.

Verwijderd

Je kunt er niet op klikken, of er gebeurd niets als je er op klikt? Dat laatste lijkt me eigenlijk wel logisch, je href verwijst immers naar index.php. Je blijft dus op dezelfde pagina zonder dat er wat gebeurd.

Verander je body tag eens naar:
code:
1
<body onload="alert('loaded')">


Herlaadt dan de pagina (CTRL-R in IE) en klik dan op je knop. Krijg je dan je alert message, of niet?

Verwijderd

Topicstarter
De pagina wordt geladen want ik krijg hem te zien. Ik heb wel de oorsprong van het probleem gevonden. De url's die hij moet gebruiken zitten in een array.. en daarna worden deze opgehaalt. Ik denk dat hij de array verkeerd parsed of iets in die aard. Want in het volgende menu heb ik het ook geprobeerd maar dan door dit te doen:

code:
1
2
3
4
5
6
7
    for($i = 0; $i < 8; $i++) {
    
      $tpl->newBlock('recentMenu');
      $tpl->assign('recentMenuItem', 'test1' . $i);
      $tpl->assign('recentMenuURL', 'test.php');
    
    }


hier is die url (test.php) geen variabele uit een array, en dat is het probleem.. alleen kan ik het nog niet oplossen, heeft iemand een idee?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Ehm, in je template staat letterlijk "index.php". Dan kan ie toch ook alleen naar index.php linken? Wat is je precieze HTML-uitvoer? En hoe maak je die? Aan een paar functiecalls zonder de functie erbij te zien hebben we niks.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Ik heb het nu even anders geprobeerd.

index.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
  // mainMenu
  
    $tpl->assignGlobal('mainMenuTitle', 'Main');  
    $mainMenuItem = array('Homepage','Categories', 'Archive', 'Files', 'Forum', 'Pictures', 'Calender', 'Contact');
    $mainMenuURL = array('index.php','categories.php', 'archive.php', 'files.php', 'forum.php', 'pictures.php', 'calender.php', 'contact.php');
  
    for ($i = 0; $i < count($mainMenuItem); $i++) {
  
      $tpl->newBlock('mainMenu');      
      $tpl->assign('mainMenuLink', '<a class="menu" href="' . $mainMenuURL[$i] . '">' . $mainMenuItem[$i] . '</a>');
  
    }
  
  // recentMenu
  
    $tpl->assignGlobal('recentMenuTitle', 'Recent posts');  
  
    for($i = 0; $i < 8; $i++) {
    
      $tpl->newBlock('recentMenu');
      $tpl->assign('recentMenuLink', '<a class="menu" href="test' . $i . '.php">test' . $i . '</a>');
    
    }


index.tpl
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
        <div class="boxTitle">{mainMenuTitle}</div>
        <div class="boxContent">
          <!-- START BLOCK : mainMenu -->
          » {mainMenuLink}<br>
          <!-- END BLOCK : mainMenu -->
        </div>  
        <br>  
        <div class="boxTitle">{recentMenuTitle}</div>
        <div class="boxContent">
          <!-- START BLOCK : recentMenu -->
          # {recentMenuLink}<br>
          <!-- END BLOCK : recentMenu -->
        </div>


De links in het block recentMenu geeft hij goed weer en die in mainMenu geeft hij fout weer en toch staat dit in de bron van de pagina.

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
26
27
        <div class="boxTitle">Main</div>
        <div class="boxContent">
          » <a class="menu" href="index.php">Homepage</a><br>
          » <a class="menu" href="categories.php">Categories</a><br>
          » <a class="menu" href="archive.php">Archive</a><br>

          » <a class="menu" href="files.php">Files</a><br>
          » <a class="menu" href="forum.php">Forum</a><br>
          » <a class="menu" href="pictures.php">Pictures</a><br>
          » <a class="menu" href="calender.php">Calender</a><br>
          » <a class="menu" href="contact.php">Contact</a><br>

        </div>  
        <br>  
        <div class="boxTitle">Recent posts</div>
        <div class="boxContent">
          # <a class="menu" href="test0.php">test0</a><br>
          # <a class="menu" href="test1.php">test1</a><br>
          # <a class="menu" href="test2.php">test2</a><br>

          # <a class="menu" href="test3.php">test3</a><br>
          # <a class="menu" href="test4.php">test4</a><br>
          # <a class="menu" href="test5.php">test5</a><br>
          # <a class="menu" href="test6.php">test6</a><br>
          # <a class="menu" href="test7.php">test7</a><br>

        </div>

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:25

crisp

Devver

Pixelated

define "fout weergeven" en verschilt dat nog per browser?

Wat voor character-encoding gebruik je? » is extended latin en bij ANSI-encoding zou je daarvoor dus een entity moeten gebruiken ( &raquo; ), maar bij ISO-8859-x of UTF-x zou dat geen probleem op mogen leveren.

Over je markup valt ook wel iets te zeggen; zou je de titles niet beter in een Hx element zetten en je links in een list?

[ Voor 7% gewijzigd door crisp op 04-09-2005 22:55 ]

Intentionally left blank


Verwijderd

[edit aarg foutje mom]

[ Voor 100% gewijzigd door Verwijderd op 05-09-2005 00:11 ]


Verwijderd

Topicstarter
crisp schreef op zondag 04 september 2005 @ 22:54:
define "fout weergeven" en verschilt dat nog per browser?

Wat voor character-encoding gebruik je? » is extended latin en bij ANSI-encoding zou je daarvoor dus een entity moeten gebruiken ( &raquo; ), maar bij ISO-8859-x of UTF-x zou dat geen probleem op mogen leveren.

Over je markup valt ook wel iets te zeggen; zou je de titles niet beter in een Hx element zetten en je links in een list?
Het is dus een browser probleempje. In IE geeft hij geen fout weer en werkt alles zoals het moet. Ik heb geprobeerd dat » te vervangen maar dat brengt niets op. Moest het probleem aan die character-encoding liggen hoe zou ik dat probleem dan deftig kunnen oplossen?

Ik zal de markup veranderen

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Als het per browser verschilt dan is je probleem clientside, en dus meer op zijn plaats in Webdesign & Graphics. :)

PW>>WG

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Die character-encoding toevoegen heeft niets uitgehaalt als dit de juiste manier van implementeren is tenminste

code:
1
2
3
4
5
6
7
8
9
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title> {pageTitle} </title>    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
    <link rel="stylesheet" href="{cssDir}/simpleGrey.css" type="text/css">
  </head>
  <body>


EDIT: Het probleem is gevonden alleen kan ik het nog niet oplossen. Het probleem was dus de div die naast dit menu kwam. Deze blockt blijkbaar de links... ik heb hem eve verwijderd om te kijken en toen ging alles. Nu is het probleem hoe krijg ik dat weg...

EDIT 2: het probleem is opgelost. Ik heb het menu een z-index meegegeven. Bedankt voor jullie hulp :p

[ Voor 39% gewijzigd door Verwijderd op 05-09-2005 20:31 ]

Pagina: 1