Nederbasse wrote:
> Hej
>
> Jeg har lavet en side hvor man kan slette en record i en mysql db
> ID i db'en er lavet til et link på siden og når man klikker på linket
> slettes recorden i databasen, det er fint nok men jeg kunne godt tænke mig
> der kom en box op der spurgte om man var sikker på man vil slette ( lidt
> windows style
) kan dette laves ?
>
> LarsN
>
>
Det mest sikre er nok slet ikke at anvende JavaScript, du kan så ikke få
det som en 'box der kommer op', men du kan da bare style løs, så det
kommer til at ligne :)
Her er et hurtigt utestet skelet:
<?php
function getConfirmation($id, $referer) {
$form = <<<FORM
<form method="post" action="{$_SERVER['PHP_SELF']}">
<input type="hidden" name="id" value="{$id}" />
<input type="hidden" name="referer" value="{$referer}"/>
<table>
<tr>
<td colspan="2">
Er du sikker på at du vil slette rækken,
hvor id="{$id}"?
</td>
</tr>
<tr>
<td>
<input type="submit" name="confirm" value="Ja"/>
</td>
<td style="text-align: right;">
<input type="submit" name="confirm" value="Nej"/>
</td>
</tr>
</table>
</form>
FORM;
return $form;
}
function getClosure($id, $referer) {
$closure = <<<CLOSURE
Rækken med id="{$id}" er slettet!<br/>
<a href="{$referer}">Tilbage</a>
CLOSURE;
return $closure;
}
function deleteRecord($id) {
// Fyld selv denne.
}
if( strcasecmp($_SERVER['REQUEST_METHOD'],'post')==0 ) {
if( (isset($_POST['confirm'])) &&
(strcmp($_POST['confirm'],'Ja')==0) ) {
$id = $_POST['id'];
$referer = $_POST['referer'];
deleteRecord($id);
echo getClosure($id, $referer);
} else {
$referer = $_POST['referer'];
header('Location: '.$referer);
}
} else {
$referer = $_SERVER['HTTP_REFERER'];
$id = $_GET['id'];
echo getConfirmation($id, $referer);
}
?>
Der er selvfølgelig andre og sikkert også bedre måder at gøre det på,
men ovenstående burde da give dig en idé, du kan arbejde ud fra.
Jeg er f.eks. ikke sikker på at $_SERVER['HTTP_REFERER'] altid er
udfyldt, men så kunne man overveje at sende den med som parameter til
slet.php. F.eks:
<a href="slet.php?id=3&referer=migselv.php">Slet</a>
MVH Per Thomsen,
http://www.pert.dk/