Bilde
  Førstesiden | C++ | JavaScript | SQL | ASP | PHP | PHP & MySQL | PHP & PostgreSQL | Bruktbutikk | Linker | Nytt fra php.net | Forum | Quiz

Fant ingen poster

Kodearkiv
+ C++ (50)
+ Intro til PHP (114)
+ PHP og databaser
+ ASP (49)
+ SQL (26)
+ JavaScript (55)
Diverse
» Howto`s (22)
» htaccess
» Innsendte triks
Feedback
» Ris og ros
» Rapporter bugs
» Ny artikkel
» Kontakt meg
Verktøy
» Generer robots.txt
» Generer metatagger
» Redirect generator
» Scann metatagger
» Bakgrunnsfarge
» Velg font
Sjekk kode
» HTML Validator
» CSS Validator
Tilfeldig link
Tjenester
» Forum
» Quiz!



Førstesiden / PHP / post_link.html

Hvordan bruke POST til å linke til sider

Vi er alle kjente med at man kan bruke GET for å velge side, eksempel:


<?php

if ( $_GET['side'] == "Hjem" ) {
    print 
"Dette er hjemmesiden.";
}
elseif ( 
$_GET['side'] == "Info" ) {
    print 
"Informasjonssiden..";
}

?>

<a href="index.php?side=Hjem">Hjem</a><br />
<a href="index.php?side=Info">Info</a><br />



*Ulempen* ved å bruke denne metoden er at man får den kanskje skjemmende teksten "?side=blahblahblah" etter url'en. Ved å bruke POST-metoden istedenfor GET kan man fjerne denne teksten, noe som bidrar til å lage en ryddigere hjemmeside. (selv om kildekoden ikke akkurat blir så mye ryddigere)

For å bruke POST-metoden istedenfor GET, kan man ikke bruke den vanlige metoden, med såkalt 'querystring' etter url'en. Måten man gjør dette på, er å opprette et skjema som bare inneholder en input, som er skjult. Dette skjemaet pleier jeg for ordens skyld å legge inn i kildekoden, rett etter -flagget. Koden for dette skjemaet blir da:


<form name="navigasjon" method="post" action="index.php">
<input type="hidden" name="side" value="" />
</form>


Når noen trykker på en link, bruker vi javascript for først å forandre verdien til "side". Deretter bruker vi javascript til å sende skjemaet. Koden vil da ligne noe slikt:


<a href="javascript:document.navigasjon.side.value='Hjem'; document.navigasjon.submit();">Hjem</a><br />
<a href="javascript:document.navigasjon.side.value='Info'; document.navigasjon.submit();">Info</a><br />


PHP-delen er nesten helt lik den som brukes ved GET, bortsett fra at man bruker $_POST.


<?php

if ( $_POST['side'] == "Hjem" ) {
    print 
"Dette er hjemmesiden.";
}
elseif ( 
$_POST['side'] == "Info" ) {
    print 
"Informasjonssiden..";
}

?>


Vår samlede kode, med POST-metoden, ser da slik ut:


<html>
<head>
</head>
<body>
<form name="navigasjon" method="post" action="index.php">
<input type="hidden" name="side" value="" />
</form>

<?php


if ( $_POST['side'] == "Hjem" ) {
    print 
"Dette er hjemmesiden.";
}
elseif ( 
$_POST['side'] == "Info" ) {
    print 
"Informasjonssiden..";
} else {
  
// Vi legger til en "default"-side
  
print "Velkommen til denne siden!";
}

?>


<a href="javascript:document.navigasjon.side.value='Hjem'; document.navigasjon.submit();">Hjem</a><br />
<a href="javascript:document.navigasjon.side.value='Info'; document.navigasjon.submit();">Info</a><br />



Eventuell forbedring: Når man holder musen over linken, vil status-linja vise javascriptet. For å holde hjemmesida like ren som den ble ved bruk av POST-metoden, kan man forandre statuslinjeteksten manuelt. For å gjøre dette legges det til to javascript- kommandoer i linkene, eksempel:


<a OnMouseOver="window.status='Hjem'; return true;" OnMouseOut="window.status=''; return true;" 
href="javascript:document.navigasjon.side.value='Hjem'; document.navigasjon.submit();">Hjem</a><br />


Lykke til med bruken av POST!
- Eirik Sletteberg


Utskriftsvennlig versjon | Forslag til endring av artikkel | Skriv ut | Ny kommentar

Det er ingen kommentarer til denne artikkelen.



Nyttige program
PHP
MySQL
PostgreSQL
.NET FrameWork
Apachetoolbox
EasyPHP
PHP Coder
Om meg
CV
Hvem er jeg?
Støtt sindrem.com
Bli partner?
Linke til Sindrem.com
SinSoft
Priser annonsering
Oppdrag
Kursplan 2003
Systemutvikling
Forum
Søk på sindrem.com
 
 
Søk på php.net
 
 
Nyhetsbrev
 
 På:Av:
 


 ©® Sindre Mathisen, SinSoft™ Designet for NS 6.0, IE 5, Opera 5.0 og nyere. Bokmerk denne siden.




Forum1.no - Bannerexchange