Opslaan via tekstlink die buiten een formulier staat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Floris

Floris

11/01/2006 16:41:00
Quote Anchor link
Hallo,

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

PHP hulp

24/11/2024 05:26:14
 

11/01/2006 16:43:00
Quote Anchor link
document.forms['formnaam'].submit :-)
 
Floris

Floris

12/01/2006 07:56:00
Quote Anchor link
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?
 
Kalle P

Kalle P

12/01/2006 10:13:00
Quote Anchor link
Met isset() kan dat achterhaalt worden.

edit:

formulier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
<form method="post" action="volgendepagina.php">
<
input type="submit" name="submit" value="Volgende Pagina" />  
<
/form>
?>


En in je controle op volgendepagina.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  // en dan hier een test op een formulierveld
}
else {
// Geen submit plaats gevonden.
}
?>


edit: aanpassing van de post hieronder.
Gewijzigd op 12/01/2006 11:34:00 door Kalle P
 
Jan Koehoorn

Jan Koehoorn

12/01/2006 11:11:00
Quote Anchor link
Controle beter zo:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// en dan hier een test op een formulierveld
}
Gewijzigd op 12/01/2006 11:12:00 door Jan Koehoorn
 
Jelmer -

Jelmer -

12/01/2006 11:12:00
Quote Anchor link
Kalle, daarmee controleer je alleen of er op de knop is gedrukt (alleen waneer je de submit knop gebruikt, geeft deze zijn naam en waarde mee bij de rest van het formulier) Het gebruik van de enter knop, (en ook die van de link) wordt in jouw constructie meteen gezien als 'niets ingevuld'.

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 -
 
Kalle P

Kalle P

12/01/2006 11:19:00
Quote Anchor link
@jelmer Ok, maar ik probeerde het zo eenvoudig mogelijk neer te zetten..
Gewijzigd op 12/01/2006 11:36:00 door Kalle P
 
Floris

Floris

12/01/2006 13:47:00
Quote Anchor link
bedankt, maar in mijn geval kan het formulier ook via een aantal controls gepost worden (in dat geval wordt er niet opgeslagen, maar iets gewijzigd wat een herladen van de pagina vereist).

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?
 

12/01/2006 13:55:00
Quote Anchor link
Zoek even bij 'DOM -> Forms' op W3Schools
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.