Actions
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.
Kan je het niet gewoon naar een andere pagina sturen en daar in de database schrijven?
Daar mag ik verder niet bij.
maak een nieuwe php pagina, en voer vandaar uit 2 acties uit.
Als diegene op verzenden klikt. worden die gegevens opgeslagen in een DB.
Ik wil dat die gegevens dan OOK naar een andere website gaat en daar dezelfde gegevens invult.
Dat invullen wil wel.
Kan ik hieronder bij <form> tag nog een action toevoegen ?
<form name="input" action="http://localhost/Formulier/verzonden.php" method="post">
Naam: <input type="text" name="naam" /><br />
Achternaam: <input type="text" name="achternaam" /><br />
E-mail: <input type="text" name="mail" /><br />
<input type="submit" value="Verzenden" />
</form>
Ofwel regel je het met php: met CURL-toestanden kan je de server vragen om contact te maken met een andere server.
Ofwel kan je het client side oplossen, met Ajax.
Niets belet je om een array te maken met url's (2 verschillende; maar meer is ook mogelijk), waarna javascript voor elk een Ajax request uitvoert.
Interesse in die laatste oplossing?
Uhm ik ben op het gebied van Ajax een vrijwel beginner nooit mee gewerkt maar als jij een goeie tut hebt is het altijd het proberen waard.
Gewijzigd op 18/04/2012 14:36:41 door Gerrit Vriemeling
Ajax valt mee. Ik heb me er vandaag flink in verdiept en is eigenlijk pure logica die moeilijk te begrijpen valt. De link van - Aar - doorlezen, is makkelijk als je het een paar keer hebt geprobeerd.
Maar er bestaat dus geen suggestie zoals 2 actions in een <form> tag plaatsen?
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?
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.
<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.
Gewijzigd op 19/04/2012 12:07:44 door Joey Schroder
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.
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 ?
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
Gewijzigd op 19/04/2012 16:12:29 door Kris Peeters
Ik heb een stuk javascrip gevonden waarmee ik meerdere actions aan 1 form kan koppelen. Daar stoei ik nu even mee.
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.
Gewijzigd op 19/04/2012 17:32:00 door Obelix Idefix