31. januar 2007 - 22:59Der er
20 kommentarer og 1 løsning
kald function efter tryk på knap?
Hey ekspertz
På forhånd vil jeg lige sige undskyld hvis jeg skulle have smidt dette spm i javascript, men prøver nu alligevel lykken her...
Har en input knap: <input name="button" class="buttons" type="button" onclick="slet(<?=$Doc_ID?>);" value="Slet side" />
Den kalder en function hedder hedder slet
Jeg vil gerne have at hvis man trykker på Ok så skal den udføre en function fra php der hedder DeletePage, men kan ikke rigtig få det til at fungere:
<script type="text/javascript"> function slet(doc_id) { if (confirm("Er du sikker på du vil slette siden?")) { document.location = 'DeletePage(+ doc_id)'; } } </script>
Nej, det kan heller ikke lade sig gøre på den måde. Du kan ikke kalde en PHP-funktion som sådan fra andet end PHP.
Løsningen kunne være at kalde en side - deletepage.php?doc_id=XXX, hvori du så kan kalde funktionen med værdien XXX.
<script type="text/javascript"> function slet(doc_id) { if (confirm("Er du sikker på du vil slette siden?")) { document.location.href = 'deletepage.php?doc_id=' + doc_id; } } </script>
<script type="text/javascript"> function slet(doc_id) { if (confirm("Er du sikker på du vil slette siden?")) { document.location = 'DeletePage.php?id='+ doc_id; } } </script>
Hmmm - der er vist lidt begrebsforvirring. PHP køres på serveren, Javascript på klienten. Det vil sige, at du KUN har mulighed for at køre noget på serveren ved at lade klienten forespørge...
Så nej, det vil ikke være muligt at kalde _PHP_-funktionen direkte fra Javascript - og dermed er det ret ligegyldigt _hvor_ i HTML'en din confirm() ligger.
... men du skal jo ikke partout lave en side, der hedder deletepage.php - DeletePage()-funktionen kan også kaldes på en hvilken som helst anden side, så længe du blot medsender doc_id (så man ved hvad der ønskes slettet).
<script type="text/javascript"> function php(func) { if (confirm("Er du sikker på du vil slette siden?")) { document.location.href = 'func.php?func='+func; } } </script>
<script type="text/javascript"> function php(func, arg) { if (confirm("Er du sikker på du vil slette siden?")) { document.location.href = 'func.php?func='+func+'&arg='+arg; } } </script>
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.