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. | |
|