stappenformulier

Pagina: 1
Acties:

  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
Hey,

Ik heb een stappenformulier (contactformulier) gemaakt in php. Omdat het zo groot is heb ik het dus in stappen ingedeeld.

Maar het probleem is dat de variabelen van de eerste stap niet bij de laatste stap achterhaald kunnen worden, hij wordt dus niet doorgestuurd.

Ik heb eerst gewerkt met de $_POST globale array, maar die werkt niet, toen met sessies, dat werkte wel, maar als je dan op terug klikt, bv als je iets verkeerd ingevuld heb, dan zijn alle velden leeg.

Toen wilde ik dus de globale array $_SESSION gebruiken, maar dat lukte ook niet.

Is er een betere manier voor dit soort "contactformulieren", zodat je als je op "terug" klikt in de browser ook alle waarden in de velden ziet staan, dat ze ook geupdate kunnen worden en dat de variabelen ook doorkomen tot aan de laatste stap.

Als het script nodig is dan moet je ut even zeggen.

Alvast bedankt,
Greezzz wboard

A smooth sea never made a skilled sailor


  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
try this:
code:
1
<input type='text' name='bla' value='<?=$_SESSION['bla']?>'>

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
het probleem is alleen dat hij die "value niet pakt", dus hij moet eerst in een session gezet worden, maar dan kan hij um niet meer updaten :S

A smooth sea never made a skilled sailor


  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
hier is het script
PHP:
1
<?//session starten script easyreclame wboardif($bestellen_stap == ''){?><form action="bestellen.php" method="post" onSubmit="return velden();">  <p>    <script language="javascript">function velden() {var ErrMsg;var TotalEmpty;ErrMsg = '';TotalEmpty = 0;if (document.all.afmeting.value == '') { ErrMsg = ErrMsg + "- Afmeting\n"; TotalEmpty = TotalEmpty + 1;;}if (document.all.aantal.value == '') { ErrMsg = ErrMsg + "- Aantal\n"; TotalEmpty = TotalEmpty + 1;;}if (document.all.ldatum.value == '') { ErrMsg = ErrMsg + "- Gewenste leverdatum\n"; TotalEmpty = TotalEmpty + 1;;}if (document.all.bestandsnaam.value == '') { ErrMsg = ErrMsg + "- Bestandsnaam\n"; TotalEmpty = TotalEmpty + 1;;}if ((document.all.bestandsformaat.value == '') &amp;&amp; (document.all.anderbestandsformaat.value == '')){ ErrMsg = ErrMsg + "- Bestandsformaat\n"; TotalEmpty = TotalEmpty + 1;;}if ((document.all.aanleveren[0].checked == false) &amp;&amp; (document.all.aanleveren[1].checked == false) &amp;&amp; (document.all.aanleveren[2].checked == false) &amp;&amp; (document.all.aanleveren[3].checked == false) &amp;&amp; (document.all.aanleveren[4].checked == false)) {ErrMsg = ErrMsg + "- Aanlevering bestand\n"; TotalEmpty = TotalEmpty + 1;}if (TotalEmpty == 6) {}if (ErrMsg != '') {alert("De volgende velden zijn niet of niet juist ingevoerd:\n" + ErrMsg);return false;}return true;}</script>    <input type="hidden" name="bestellen_stap" value="2">  </p>  <p>Bedankt voor uw interesse in Hagenaar Reclame bv!<br>    Als u nu van onze aanbiedingen wil profiteren kunt d.m.v.<br>    onderstaand bestelformulier uw bestelling plaatsen.</p>  <table cellspacing="5" cellpadding="5" border="0" class="contact" width="525">    <tr bgcolor="#92ADF8">     <td colspan="3" height="29"><font color="#ffffff"><b>Order gegevens</b></font></td>    </tr>    <tr>     <td width="149" height="29">Aanbieding</td>    <td colspan="2"> : borden 10mm kunststof (wit) met full-color poster.</td>    </tr>    <tr>     <td height="38">Gewenste afmeting<br>    </td>    <td colspan="2">       <input type="text" name="afmeting" value="">      (standaard 122x244cm) </td>    </tr>    <tr>     <td height="38">Aantal</td>    <td colspan="2">       <input type="text" name="aantal" value="">    </td>    </tr>    <tr>     <td height="38">Gewenste leverdatum</td>    <td colspan="2">       <input type="text" name="ldatum" value="">    </td>    </tr>    <tr bgcolor="#92ADF8">     <td height="29" colspan="2" valign="top"><font color="#ffffff"><b>Bestandsinformatie       </b></font></td>    <td width="76" valign="top"><a href="http://www.hagenaarreclame.nl/hagenaarreclame.nl/zeefdruk/zeefdruk.php?pg=filminfo&amp;prod=zd">[img]"../../easyreclame.com/jpegs/vraagtek.gif"[/img]</a></td>    </tr>    <tr>     <td height="38">Bestandsnaam</td>    <td colspan="2">       <input type="text" name="bestandsnaam" value="">    </td>    </tr>    <tr>     <td height="38">Bestandsformaat</td>    <td colspan="2">       <select name="bestandsformaat">        <option>(maak keuze)</option>        <option value="pdf">pdf</option>        <option value="tiff">tiff</option>        <option value="eps">eps</option>        <option value="jpeg">jpeg</option>        <option value="jpg">jpg</option>        <option value="cdr">cdr</option>        <option value="cpt">cpt</option>      </select>      anders nl.       <input type="text" name="anderbestandsformaat" value="">    </td>    </tr>    <tr>     <td height="29" valign="top">Aanlevering bestand op</td>    <td valign="top" colspan="2" rowspan="2">       <p>:         <input type="radio" name="aanleveren" value="1">        zip<br>        :         <input type="radio" name="aanleveren" value="1">        internet/email<br>        :         <input type="radio" name="aanleveren" value="1">        cd-rom<br>        :         <input type="radio" name="aanleveren" value="1">        dvd <br>        :         <input type="radio" name="aanleveren" value="1">        overige </p>    </td>    </tr>    <tr>     <td height="86"></td>    </tr>    <tr>     <td height="31" colspan="3" valign="top">       <hr class=hr width="100%" height="1">    </td>    </tr>    <tr>     <td height="43" colspan="3" valign="top">       <input type="submit" value="Volgende stap >>">      <input type="reset" name="reset" value="Wis gegevens">    </td>    </tr>    <tr>     <td height="11"></td>    <td width="250"></td>    <td></td>    </tr>  </table>  <br></form><?}elseif($bestellen_stap == '2'){?><form action="bestellen.php" method="post" onSubmit="return velden();">  <p>     <script language="javascript">function velden() {var alles;alles = 0;if ((document.all.bev[0].checked == false) &amp;&amp; (document.all.bev[1].checked == false)) {alert("Voordat u verder kunt, moet u akkoord gaan met onze voorwaarden. Klik op \"ja\", onder het kopje bevestiging!\n"); return false;}if ((document.all.bev[0].checked == false) &amp;&amp; (document.all.bev[1].checked == true)) {alert("U heeft op \"nee\" geklikt, dit betekent dat u niet akkoord gaat met onze voorwaarden. De bestelling kan niet worden afgerond\n"); return false;}if (TotalEmpty == 2) {}return true;}</script>    <input type="hidden" name="bestellen_stap" value="3">  </p>  <table cellspacing="5" cellpadding="5" border="0" class="contact" width="525">    <tr bgcolor="#92ADF8">     <td colspan="2" height="29"><font color="#ffffff"><b>Leveringsvoorwaarden</b></font></td>    </tr>    <tr>     <td width="114" height="29">Aanbieding</td>    <td width="376"> : borden 10mm kunststof (wit) met full-color poster.</td>    </tr>    <tr>     <td height="38">Digitaal aanleveren van bestand<br>    </td>    <td> : volgens onze specificaties</td>    </tr>    <tr>     <td height="38">Prijzen</td>    <td> : excl. BTW, excl. transport- en verpakkingskosten (kan wel &amp;nbsp&amp;nbspdoor       ons worden verzorgd, tegen kostprijs)</td>    </tr>    <tr bgcolor="#92ADF8">     <td height="29" colspan="2" valign="top"><font color="#ffffff"><b>Betalingsvoorwaarden</b></font></td>    <tr>     <td height="38">Betalingsconditie</td>    <td> : Netto binnen 30 dagen naar factuurdatum.</td>    </tr>    <tr bgcolor="#92ADF8">     <td height="29" colspan="2" valign="top"><font color="#ffffff"><b>Bevestiging</b></font></td>    <tr>     <td valign="top" height="29" colspan="2">Gaat u akkoord met de door ons       gestelde voorwaarden:       <input type="radio" name="bev" value="ja">      ja       <input type="radio" name="bev" value="nee">      nee </td>    </tr>    <tr>     <td height="31" colspan="2" valign="top">       <hr class=hr width="100%" height="1">    </td>    </tr>    <tr>     <td height="43" colspan="2" valign="top">       <input type="submit" value="Volgende stap >>">    </td>    </tr>  </table>  <br></form><?}elseif($bestellen_stap == '3'){?><form action="bestellen.php" method="post" onSubmit="return velden();">  <p>     <script language="javascript">function velden() {var error;var TotalEmpty;error = '';TotalEmpty = 0;if (document.all.naam.value == '') { error = error + "- Naam\n"; TotalEmpty = TotalEmpty + 1;;}if (document.all.bedrijf.value == '') { error = error + "- Bedrijf/Instelling\n"; TotalEmpty = TotalEmpty + 1;;}if (document.all.adres.value == '') { error = error + "- Adres\n"; TotalEmpty = TotalEmpty + 1;;}if (document.all.postcode.value == '') { error = error + "- Postcode\n"; TotalEmpty = TotalEmpty + 1;;}if (document.all.plaats.value == '') { error = error + "- Plaats\n"; TotalEmpty = TotalEmpty + 1;;}if (document.all.telefoon.value == '') { error = error + "- Telefoon\n"; TotalEmpty = TotalEmpty + 1;;}if (document.all.email.value == '') { error = error + "- Email\n"; TotalEmpty = TotalEmpty + 1;;}if (TotalEmpty == 7) {}if (error != '') {alert("De volgende velden zijn niet of niet juist ingevoerd:\n" + error);return false;}return true;}</script>    <input type="hidden" name="bestellen_stap" value="4">  </p>   <table cellspacing="5" cellpadding="5" border="0" class="contact" width="525">    <tr bgcolor="#92ADF8">     <td colspan="2" height="29"><font color="#ffffff"><b>Gegevens t.b.v. bestelling</b></font></td>    </tr>    <tr>     <td width="178" height="38">Naam dhr/mevr. <font color="#FF0000">*</font></td>    <td width="335">       <input type="text" name="naam" value="">    </td>    </tr>    <tr>     <td height="38" width="178">Functie<br>    </td>    <td width="335">       <input type="text" name="functie" value="">    </td>    </tr>    <tr>     <td height="38" width="178">Bedrijf/Instelling <font color="#FF0000">*</font></td>    <td width="335">       <input type="text" name="bedrijf" value="">    </td>    </tr>    <tr>     <td height="38" width="178">Adres<font color="#FF0000"> *</font></td>    <td width="335">       <input type="text" name="adres" value="">    </td>    </tr>    <tr>     <td height="38" width="178">Postcode<font color="#FF0000"> *</font><br>    </td>    <td width="335">       <input type="text" name="postcode" value="">    </td>    </tr>    <tr>     <td height="38" width="178">Plaats <font color="#FF0000">*</font></td>    <td width="335">       <input type="text" name="plaats" value="">    </td>    </tr>    <tr>     <td height="38" width="178">Telefoon <font color="#FF0000">*</font></td>    <td width="335">       <input type="text" name="telefoon" value="">    </td>    </tr>    <tr>     <td height="38" width="178">Fax</td>    <td width="335">       <input type="text" name="fax" value="">    </td>    </tr>    <tr>     <td height="38" width="178">E-mail <font color="#FF0000">*</font></td>    <td width="335">       <input type="text" name="email" value="">    </td>    </tr>    <tr>     <td height="38" width="178">Homepage</td>    <td width="335">       <input type="text" name="homepage" value="http://">    </td>    </tr>    <tr bgcolor="#92ADF8">     <td height="29" colspan="2" valign="top"><font color="#ffffff"><b>Overig</b></font></td>    </tr>    <tr>     <td height="29" valign="top" width="178">Opmerkingen</td>    <td valign="top" rowspan="2" width="335">       <p>         <textarea name="offertebes" cols=30 rows=5 wrap=soft></textarea>      </p>    </td>    </tr>    <tr>     <td height="86" width="178"></td>    </tr>    <tr>     <td height="31" colspan="2" valign="top">       <hr class=hr width="100%" height="1">    </td>    </tr>    <tr>     <td height="43" colspan="2" valign="top">       <input type="submit" value="Bestelling verzenden!">      <input type="reset" name="reset" value="Wis gegevens">    </td>    </tr>  </table>  <br></form><?}elseif($bestellen_stap == '4'){$blaat = $_POST["aantal"]; echo "$blaat"; }?>

A smooth sea never made a skilled sailor


  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
kan je aub alleen de relevante code neerzetten plz?

dus alle php code en een voorbeeld formpje

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
dit is de relevante code, dit is dus de complete code, en een voorbeeldje is te vinden in http://www.hagenaarreclame.nl/easyreclame/bestellen/

A smooth sea never made a skilled sailor


  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
hier wat overzichtelijker
PHP:
1
<?//session starten script easyreclame wboardif($bestellen_stap == ''){?><form action="bestellen.php" method="post" onSubmit="return velden();"> //hier html code eerste stap</form><?}elseif($bestellen_stap == '2'){?><form action="bestellen.php" method="post" onSubmit="return velden();"> //hier html code tweede stap</form><?}elseif($bestellen_stap == '3'){?><form action="bestellen.php" method="post" onSubmit="return velden();"> //hier html code derde stap</form><?}elseif($bestellen_stap == '4'){$blaat = $_POST["aantal"]; echo "$blaat"; }?>

A smooth sea never made a skilled sailor


  • Aaargh!
  • Registratie: Januari 2000
  • Laatst online: 29-08 14:29

Aaargh!

Bow for me for I am prutser

De waarden die in een vorige stap zijn ingevuld doorgeven aan de volgende stap d.m.v. hidden input fields, lijkt me vrij basic.

Those who do not understand Unix are condemned to reinvent it, poorly.


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 00:01

BierPul

2 koffie graag

Post de waarden van je eerste stap naar het 2de form.
die pak je dan aan in hidden fields
code:
1
<input type="hidden" name="naam" value="<?php echo($naam_van_form1); ?>">

En post die weer door naar je 3de stap enzovoorts :)
Je zou het ook in sessions op kunnen slaan dan registreer je gewoon de sessions op moment dat de 2de stap geladen wordt.

* BierPul denk dat het zo wel moet lukken, en pakt een volgende fles bier :9~ :)

Ja man


  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

ga jezelf even verdiepen in sessions.
Dat 'hidden' doorgeven kan wel, maar das echt een pruts methode.

*insert signature here


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 00:01

BierPul

2 koffie graag

Op vrijdag 12 juli 2002 21:57 schreef TjarkVerhoeven het volgende:
ga jezelf even verdiepen in sessions.
Dat 'hidden' doorgeven kan wel, maar das echt een pruts methode.
Agree maar het niveau van deze vraag te zien leek het me verstandiger het even zo voor te stellen.

Het gebruik van hiddenfields kan van later zin weer van toepassing zijn :)

Evenals sessions natuurlijk :)

Het gaat vaak om een stukje logisch denken (waar ik ook een tijd mee geprutst heb }:O) als je een beetj begrijpt hoe het werkt kan je in principe alles fixen :)

Ja man


  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

Op vrijdag 12 juli 2002 22:04 schreef LOST_GUNT het volgende:
Agree maar het niveau van deze vraag te zien leek het me verstandiger het even zo voor te stellen.
true true :)

Sessions lijken even moeilijk, maar die 10 minuten investering is het wel waard.

*insert signature here


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 00:01

BierPul

2 koffie graag

Dat is een ding wat zeker is Tjark 8-)

* BierPul hoopt dat de topicstarter er zo uitkomt :)

Verplichte kost voor elke session tovenaar :P

Ja man


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Je hebt waarsch een session_start() call nodig...

  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
Ik weet wel hoe sessions werken :D

Maar het probleem is dat het niet werkt!! Hij kan um niet updaten en laat de waarden vast staan als je um update,
het zet de variabele niet in de globale array van $_POST of $_SESSION

A smooth sea never made a skilled sailor


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Er kan vanalles mis gaan met sessions in PHP: brakke PHP versie, session dir die niet bestaat of waar PHP geen schrijfrechten heeft...

probeer dus eerst een simpel formpje werkend te krijgen:
PHP:
1
<?    session_start();        if (isset($_SESSION['counter'])) {        $_SESSION['counter']++;    } else {        $_SESSION['counter'] = 0;    }?>     <html><form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">    <input type="submit" value="Submit"></form>Counter = <?= $_SESSION['counter'] ?></html>?>

Als dat werkt kan je verder...

| Toen / Nu


  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
Het probleem is dat je ze niet kan updaten, behalve met de globale array, maar dan blijft hij weer niet in de value staan.

Dat was trouwens mijn vraag, al vanaf het begin

A smooth sea never made a skilled sailor


  • Passenger
  • Registratie: Januari 2000
  • Laatst online: 19-08 11:41
zoals ik via msn al zei :) rtfm! kijk ff goed op php.net hoe sessies werken... ik heb zoiets dergelijks al es eerder gedaan met sessies, en dat werkte prima.. ik kan alleen de source niet opzoeken, want die heb ik thuis en kzit nu op mn werk...
Pagina: 1