dag PHP'ers,

Is het mogelijk om 2 actions in een form te zetten?

Dat je data naar een database wordt verstuurt en naar een andere pagina ?

Bijvoorbaat dank.
Misschien slim om daar ook op een conceptuele manier over na te gaan denken. Stel het kan wel, meerdere actions in een form, wat gebeurt er dan....

Het action betekent in feite niets anders dan dat de browser de opgegeven pagina laadt en in het verzoek naar de server de gegevens uit het form meegeeft. Zodra het verzoek is verwerkt door de server verkrijgt de browser nieuwe data om een pagina mee op te bouwen, dat is wat je als gebruiker ziet.

En dan nu twee actions. De browser stuurt nu twee verzoeken naar twee pagina's. Krijgt dan twee sets aan data terug en moet een pagina opbouwen. Welke pagina denk jij dan dat er wordt getoond?

Vraag nu beantwoord?
Dus wat jij Erwin zegt is het volgende;

Ik verstuur de data naar mijn DB en vandaar roep ik de data weer terug en verstuur ik dat naar de ander DB?
Ik weet niet op basis van welke zin je die conclusie trekt, maar dat zeg ik zeker niet. Wat ik zeg is dat het twee acties in een form niet tot de mogelijkheden behoort.
Zoals Aar al zegt kun je gebruik maken van AJAX.
Dus zoiets als dit zal nooit werken ?

<form name="input1" action="http://localhost/Formulier/test1.php" method="post">


<form name="input2" action="http://localhost/Formulier/test2.php" methode="post">
<p>1. Basisgegevens deelnemer</p><br />
Achternaam: <input type="text" name="achternaam" /><br />
Voorletters: <input type="text" name="voorletters" /><br />
Roepnaam: <input type="text" name="roepnaam" /><br />
Datum uit dienst: <input type="text" name="dienst" /><br />
E-mailadres: <input type="text" name="email" /><br />
</form>
<hr><br />
<form name="input3" action="http://localhost/Formulier/test3.php" method="post">
<p>2. Gegevens direct leidinggevende</p><br />
Achternaam: <input type="text" name="achternaam_leiding" /><br />
Roepnaam: <input type="text" name="roepnaam_leiding" /><br />
E-mailadress: <input type="text" name="email_leiding" /><br />
<hr><br />
</form>
<p>3. Duur dienstverband</p><br />
Maanden: <input type="text" name="maanden" /><br />
<hr><br />
<p>4. Bruto maandsalaris</p><br />
Bruto maandsalaris: <input type="text" name="bruto" /><br />
<hr><br />
<p>5. FTE</p><br />
FTE: <input type="text" name="fte" /><br />
<hr><br />
<p>6. Functieniveau vertrekkende medewerker</p><br />
<input type="radio" name="groep1" value="management"> Management<br />
<input type="radio" name="groep1" value="staf" > Staf/beleid<br />
<input type="radio" name="groep1" value="uitvoring"> Uitvoering/productie/administratie<br />
<input type="radio" name="groep1" value="anders1" checked> Anders:<input type="text" name="anders2" /><br />
<p>7. Geschatte tijd in maanden voordat een vervangende medewerker op een vergelijkbaar niveau presteert</p><br />
FTE: <input type="text" name="geschat" /><br />
<hr><br />
<p>8. Selecteer hier welke wervingsmethoden (naar verwachting) gebruikt zullen worden:</p><br />
<input type="checkbox" name="option1" value="interne"> Interne werving<br />
<input type="checkbox" name="option2" value="algemene_vacaturebanken" > Algemene vacaturebanken (bijv. Monsterboard, Nationalevacaturebank, etc.)<br />
<input type="checkbox" name="option3" value="functie"> Functie of branche specifieke vacaturebanken (bijv. HRnetwerk.nl, etc.)<br />
<input type="checkbox" name="option4" value="socialmedia"> Social media (bijv. Linkedin, etc.)<br />
<input type="checkbox" name="option5" value="werving_selectie" > Werving & Selectie bureau<br />
<input type="checkbox" name="option6" value="uitzendbureau"> Uitzendbureau<br />
<input type="checkbox" name="option7" value="adv_dagblad"> Advertentie dagblad of vakblad<br />
<input type="checkbox" name="option8" value="nvt" > Niet van toepassing, functie komt te vervallen<br />
<input type="checkbox" name="option9" value="anders_selecteer1" checked> Anders:<input type="text" name"anders_selecteer2"


<input type="submit" value="Verzenden" />

</form>

Ook heb ik gekeken naar het Ajax maar daar kom ik niet uit. Is waarschijnlijk te hoog gegrepen voor mij.
Een form binnen een form kan inderdaad niet.

Erwin heeft het eigenlijk al gezegd ...

Hoe websites werken:
De client surft naar een bepaalde url.
De server stuurt een respons terug naar die client.
Eventueel stuurt de gebruiker POST data mee met het verzoek (dit gebeurt dmv formulieren).

Naar twee url's tegelijk surfen, kan niet.


nu ... twee dingen.
- Leg mij eens uit waarom het nodig is.
Wat kan je op http://localhost/Formulier/test3.php regelen dat je op http://localhost/Formulier/test1.php niet kan regelen?

De url's die jij geeft, staan niet op verschillende servers. Is het uiteindelijk wel de bedoeling dat dit wel gebeurt? Twee volledig losstaande sites op verschillende servers ...
Formulieren sturen naar andere servers ... klinkt sowieso vrij vies.


- Net zoals dat het geval is voor een hoop interessante dingen, leer je ook Ajax niet op 1 dag. Je mag van mij aannemen dat Ajax interessant genoeg is om het deftig aan te leren.

Ajax doet net dit: achter je rug (asynchroon), zonder dat je daar veel van merkt als client, laat je javascript surfen naar de server. Zo kan je dus bv. Ajax gebruiken om 1 formulier naar verschillende url's te sturen.
Ik heb 1 groot formulier. Die wordt op een database opgeslagen in een bepaalde tabel. Vervolgens zitten daar ook stukken informatie in die ik in andere tabellen ook moet hebben. Dus zoals je kun zien hierboven wil ik dit

Achternaam: <input type="text" name="achternaam" /><br />
Voorletters: <input type="text" name="voorletters" /><br />
Roepnaam: <input type="text" name="roepnaam" /><br />
Datum uit dienst: <input type="text" name="dienst" /><br />
E-mailadres: <input type="text" name="email" /><br />

Opslaan in een andere tabel. Maar ook in het grote tabel.

En dit

<p>2. Gegevens direct leidinggevende</p><br />
Achternaam: <input type="text" name="achternaam_leiding" /><br />
Roepnaam: <input type="text" name="roepnaam_leiding" /><br />
E-mailadress: <input type="text" name="email_leiding" /><br />

Opslaan in een andere tabel. Maar ook in het grote tabel.

Dus er is geen andere optie als Ajax ?
Ja, okay, dan is het simpel; je hebt helemaal geen twee actions nodig; je hebt geen twee pagina's nodig; je hebt (wat dit geval betreft) geen Ajax nodig.

Je moet gewoon zien dat die ene action de gegevens in twee tabellen zet.

Je hele vraag vervalt eigenlijk. Aan client-kant maak je gewoon 1 formulier.


Verder gaat het enkel nog over de verwerking van het formulier.
Wat steekt er nu in Formulier/test1.php, Formulier/test2.php en Formulier/test3.php ?
Die code zal plus of min aan elkaar moeten worden geplakt
Ik heb een stuk javascrip gevonden waarmee ik meerdere actions aan 1 form kan koppelen. Daar stoei ik nu even mee.
Dezelfde gegevens opslaan in meerdere tabellen klinkt niet logisch.
Betekent ook dat je op meerdere plaatsen moet onderhouden. in jouw voorbeeld: wat als leidinggevende verandert? Moet je op meerdere plaatsen gaan aanpassen.

Joey Schroder op 19/04/2012 16:18:35

Ik heb een stuk javascrip gevonden waarmee ik meerdere actions aan 1 form kan koppelen. Daar stoei ik nu even mee.

Als alles plaats vindt op 1 site en je het in diverse tabellen wilt opslaan, dan heb je geen meerdere actions nodig.

Reageren