Opslaan via tekstlink die buiten een formulier staat
Ik heb een pagina waar helemaal bovenaan een tekstlink moet komen waarmee een formulier op de pagina gepost wordt en de postdata van dit formulier vervolgens wordt opgeslagen.
Nu weet ik hoe je via javascript een formulier kan posten:
<a href="javascript:SubmitForm()">Opslaan</a>
maar niet hoe ik een specifiek formulier kan posten en al helemaal niet hoe ik vervolgens in de PHP code kan bepalen welk element de post-actie heeft geinitieerd.
De pagina bevat namelijk twee formulieren. Via de tekstlink bovenaan moet één van deze twee formulieren gepost worden. Hierna wil ik dus in PHP bepalen of het formulier via de tekstlink 'opslaan' is gepost zodat ik weet of de data moet worden opgeslagen.
Nu heb ik een knop met de naam 'Opslaan' in het formulier dat gepost wordt staan en bepaal ik als volgt of die knop is ingedrukt:
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["Opslaan"])){
//procedure opslaan
}
Hoe krijg ik het voor elkaar dat ik kan bepalen of er op de tekstlink 'opslaan' is gedrukt die ook nog eens buiten het formulier staat.
Verder vroeg ik me af of het mogelijk is om meerdere formulieren tegelijk te posten of dat ik er altijd, maar één kan posten.
document.forms['formnaam'].submit :-)
ok bedankt, dan kan ik het formulier specificeren, maar hoe krijg ik het dan voor elkaar om later in de PHP code te achterhalen dat het formulier via de tekstlink is gesubmit?
edit:
formulier:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
<form method="post" action="volgendepagina.php">
<input type="submit" name="submit" value="Volgende Pagina" />
</form>
?>
<form method="post" action="volgendepagina.php">
<input type="submit" name="submit" value="Volgende Pagina" />
</form>
?>
En in je controle op volgendepagina.php
Code (php)
edit: aanpassing van de post hieronder.
Gewijzigd op 12/01/2006 11:34:00 door Kalle P
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// en dan hier een test op een formulierveld
}
Gewijzigd op 12/01/2006 11:12:00 door Jan Koehoorn
edit: en jan was nog eerder met een goede oplossing ook. Maakt het verhaal compleet :)
Gewijzigd op 12/01/2006 11:13:00 door Jelmer -
Gewijzigd op 12/01/2006 11:36:00 door Kalle P
Ik moet dus specifiek kunnen zien dat het formulier gepost is vanaf de link "opslaan"
gewoon testen met
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// en dan hier een test op een formulierveld
}
is dus niet voldoende, want dan wordt de procedure bij iedere postactie opgeslagen
Kan ik soms ook een variabele waarin ik ik aangeef dat de post vanaf de tekstlink 'opslaan' komt meesturen door:
document.forms['formnaam'].submit
nog ergens mee aan te vullen?
Of is er wellicht nog een andere oplossing?
Zoek even bij 'DOM -> Forms' op W3Schools