Avatar billede danielhep Nybegynder
11. marts 2004 - 18:35 Der er 11 kommentarer og
1 løsning

Metode til at adskille HTML og PHP

Hej

Jeg kender indtil kun en måde at afskille HTML fra PHP totalt, og det er med TOKENS.
Nu søger jeg nye måder at gøre jobbet på.

Mvh

Daniel
Avatar billede krydset Nybegynder
11. marts 2004 - 19:03 #1
<?PHP
include("dbconnect.php");
$res =  mysql_query("select * from tabel") or die(mysql_error());
while($row = mysql_fetch_array($res)) {
?>
<tabel>
<tr>
<td><?PHP echo $row['feltnavn']; ?></td>
</tr>
</tabel>
<?PHP
}
?>

Nu er php og htnl så vidt adskilt her, jeg ved ikke om det er det du mener
Avatar billede danielhep Nybegynder
11. marts 2004 - 19:07 #2
Nej det er ikke det som jeg mener.  Det er en totalt adskildelse som jeg snakker om.
Hvis du kender til templates....
Avatar billede kokoko Nybegynder
11. marts 2004 - 20:05 #3
Du kan gøre noget ala: (Dvs

<?php
  include("/inc/inc.session.php");
  include("/inc/inc.database.php");
?>
<html>
  <head>
    ...
  </head>
  <body>
    <?php
      include("/inc/inc.header.php");
      include("/inc/inc.menu.php");
    ?>
    <!-- content starrter her -->
    <?php
      include("/inc/inc.footer.php");
    ?>
  </body>
</html>

hvor header, menu, og footer filerne tilsammen er din template
Avatar billede kokoko Nybegynder
11. marts 2004 - 20:06 #4
du kan desuden smide de resterende html tags i header og footer filerne så du helt undgår html tags på siderne
Avatar billede Slettet bruger
12. marts 2004 - 03:25 #5
Hvad skulle egentlig være formålet med en total adskillelse af HTML og PHP? Så skal man jo bare bruge et andet sprog til at styre præsentationslogik, som f.eks løkker til at udskrive resultater fra databaseopslag og lignende.
Avatar billede chries Nybegynder
12. marts 2004 - 10:19 #6
Eller find en template engine :)
http://smarty.php.net
Avatar billede Slettet bruger
12. marts 2004 - 12:35 #7
Template engines ER bare "andre sprog til at styre præsentationslogik".
Avatar billede chries Nybegynder
12. marts 2004 - 13:00 #8
Det er vel en generelt ting inden for programmering at skille "bruger fladen" fra logik. Det giver nemere vedligehold. At kunne skifte sidens udseende uden man behøver at ændre en linie i koden. Det er vel analogt med CSS og html. På hvilken måde skulle det være skidt?
Avatar billede Slettet bruger
12. marts 2004 - 14:03 #9
Ja, at skille brugerfladen fra baggrundsmaskineriet er en god ting.

Men det er en fejl at tro, at man for enhver pris skal have AL logik væk fra brugerfladen, for så ender det med at man skal have baggrundsmaskineriet til at styre præsentationslogikken, og så er man jo lige vidt.

Hvis brugerfladen slet ikke må indeholde logik, skal man lave noget i denne stil:

<h1>Søgeresultat</h1>
{RESULTAT}

Hvor RESULTAT er fuldstændigt fastlagt af det usynlige bagvedliggende maskineri.

Men hvis man har mulighed for at benytte logik i præsentationen, kan man gøre noget i denne stil:

<?php if (count($resultat)==0): ?>
<p>Der var ingen resultater på din søgning</p>
<?php else: ?>
<h1>Søgeresultat</h1>
<ul>
  <?php foreach($resultat as $raekke): ?>
  <li>
    <?php echo $raekke; ?>
  </li>
  <?php endforeach; ?>
  </ul>
<?php endif; ?>

Således at det er logik i præsentationen, der beslutter hvordan resultatet fremvises. Enhver fornuftig template engine bør understøtte noget i denne stil, så den eneste reelle forskel er hvilken syntaks, man skal bruge.
Avatar billede coderdk Praktikant
13. marts 2004 - 12:54 #10
Min er faring er at udskille al vigtig logik i klasser og placere dem et (for sitet) centralt sted, og så lave præsentationssiderne med minimal (php!) kode. Template engines er efter min mening spild af tid. De ender hurtigt med at indehold logik i templateengines eget sprog, som er meget langsommere end php.
Hvorfor bruge en template engine, når du har den bedste: php ;)
Avatar billede danielhep Nybegynder
16. marts 2004 - 18:27 #11
lukker spm pga manglede svar
Avatar billede Slettet bruger
16. marts 2004 - 18:35 #12
Du kunne jo bare komme med feedback. Det er lettere at finde på løsninger, når vi kener det præcise problem.

Jeg spurgte efter formålet 12/03-2004 03:25:55
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester