Avatar billede fiskerendk Nybegynder
10. juni 2004 - 19:33 Der er 45 kommentarer og
1 løsning

Form over flere sider!

Hej

Nogen der har en ide til hvordan man kan lave en form over flere sider..
altså f.eks.

den første side vil jeg gerne ha folk vælger hvad produkt de gerne vil have..

f.eks.
de vælger en computer

MHz:
RAM:
HDD:
OS:

så skal den så gemme disse informationer til den session..
så trykker man f.eks. næste der skal man så angive navn/adresse osv.
og først der skal den sende mailen?
Avatar billede jaw Nybegynder
10. juni 2004 - 19:35 #1
$_SESSION['mhz'] = $_POST['mhz'] og så fremdeles, eller hvad tænker du på?
Avatar billede Jman Praktikant
10. juni 2004 - 19:36 #2
du kan lave <input type="hidden" name="Mhz" value="<%=request.form("Mhz")%>"> for hver enkelt.. så har du "taget dem med over" på næste side
Avatar billede Jman Praktikant
10. juni 2004 - 19:36 #3
soooooorry - så ikke kategorinaen c",)
Avatar billede jaw Nybegynder
10. juni 2004 - 19:36 #4
selv en pro kan tage fejl i farten :)
Avatar billede thedeathart Nybegynder
10. juni 2004 - 19:38 #5
men superior ide kan igså bruges.. bare med <? $_REQEUST['mhz']; ?>

eller noget i den stil.. (ikke afprøvet)
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 19:38 #6
skulle også lige til at sige det er da ASP hehe..

altså min bestillings side skal bygges op i 3 etaper hvis man kan sige det sådan..

side 1 her skrives varen osv.
side 2 her skrives navn/adresse og alt det..
side 3 her godkendes..
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 19:39 #7
og så skal det hele selvfølgelig sendes i en mail.
Avatar billede jaw Nybegynder
10. juni 2004 - 19:42 #8
side 1:
<form method="post" target="side2.php">
Info1: <input type=text name="info1">
<input type=submit name=submit value=submit>

side2:
<?
$_SESSION['info1'] = $_POST['info1'];
?>
<form method="post" target="side3.php">
Navn<input type=text name="navn">
<input type=submit name=submit value=submit>

side3:
<?
$_SESSION['navn'] = $_POST['navn'];
echo "Du har bestilt " . $_SESSION['info1'] . " og du hedder " . $_SESSION['navn'];
mail(); //afsend mail
?>

Er det sådan, bare viderebygget selvf.?
Avatar billede thedeathart Nybegynder
10. juni 2004 - 19:43 #9
så er det nok smartest at gemme oplysningerne i en session.

hvor du så slutte af med en mailform, som sender oplysningerne
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 19:47 #10
havde tænkt mig noget i stil med:

      <select name="mhz">
        <option value="#" selected="selected">Model:</option>
        <option value="2400MHz">2400MHz</option>
        <option value="2800MHz">2800MHz</option>
        <option value="3000MHz">3000MHz</option>
      </select>
      <select name="ram">
        <option value="#" selected="selected">Model:</option>
        <option value="256MB">256MB</option>
        <option value="512MB">512MB</option>
      </select>
      <select name="hdd">
        <option value="#" selected="selected">Model:</option>
        <option value="80GB">80GB</option>
        <option value="120GB">120GB</option>
      </select>
      <select name="os">
        <option value="#" selected="selected">Model:</option>
        <option value="Windows XP">Windows XP</option>
        <option value="FreeBSD 4.10">FreeBSD 4.10</option>
      </select>
<a href="?mode=navn">VIdere</A>

<?php
}
if($mode=="navn")
{
?>

input and shit

<?php
}
if($mode=="bekraeft")
{
?>

bekræft ting.

submit og send hele mailen!
<?php
}
?>
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 19:48 #11
også lidt det jeg havde tænkt på..
Avatar billede jaw Nybegynder
10. juni 2004 - 19:49 #12
Yea... Det jeg lavede, viderefører du felterne 'info1' og 'navn' - det gør du jo så bare med dem alle sammen, og på sidste side kan du så sende dem alle sammen; jeg brugte bare eksemplet med at echo'e dem...
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 19:50 #13
jamen takker det prøver jeg sq lige.. vender tilbage senere! smid lige et svar så jeg kan acceptere senere..
Avatar billede jaw Nybegynder
10. juni 2004 - 19:52 #14
Klart, klart... Gl, og har du probs siger du jo bare til :)

Forresten glemte jeg nok at skrive, at du skal have session_start(); øverst i filerne hvor du bruger sessions - ved jeg ikke om du er klar over...
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 20:19 #15
hmm nu er det her kun en test men hvad fanden er der galt?

<?php
session_start();
?>

<?php
if($mode=="model")
{
?>

<form method="post" target="hmm.php?mode=navn">

      <select name="test">
        <option value="#" selected="selected">Model:</option>
        <option value="2k2">2002</option>
        <option value="2k3">2003</option>

      </select>

<input type=submit name=submit value=submit>
</form>

<?php
}
if($mode=="navn")
{
?>

<form method="post" target="hmm.php?mode=be">
Navn<input type=text name="navn">
<input type=submit name=submit value=submit>
</form>

<?php
}
if($mode=="be")
{
?>

<?php
$_SESSION['navn'] = $_POST['navn'];
echo "Du har bestilt " . $_SESSION['model'] . " og du hedder " . $_SESSION['navn'];
?>

<?php
}
?>
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 20:19 #16
undskyld model er ændret til test
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 20:20 #17
men virker stadig ikke..
Avatar billede jaw Nybegynder
10. juni 2004 - 20:27 #18
Det er fordi, at du mangler at gemme dine sessions...
<?php
}
if($mode=="navn")
{
$_SESSION['test'] = $_POST['test'];
?>

Altså, tager din <select name="test"> og gemmer den i sessionen med navnet 'test'
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 20:50 #19
hmm det er den ligeglad med
http://phisk.net/test/hmm.php?mode=model
Avatar billede jaw Nybegynder
10. juni 2004 - 20:52 #20
Den åbner da også: http://phisk.net/test/hmm.php?mode=model når jeg trykker submit?
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 20:53 #21
den åbner den samme side jo!
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 20:54 #22
skulle jo gerne gå videre til =navn bagefter.. og bagefter det =be i samme vindue
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 20:58 #23
sorry dude det er mig der snork sover.. det skal selvfølgelig være action og ikke target i form værdien!
Avatar billede jaw Nybegynder
10. juni 2004 - 21:00 #24
Hehe, havde jeg bare kunne sige, jeg aldrig selv havde lavet den :)
Avatar billede fiskerendk Nybegynder
10. juni 2004 - 22:03 #25
jeg skal lige høre en anden ting..
Ved du hvorfor det her ik virker?

if($_SESSION['test']=="Intel") { $_SESSION['type-intel'] = $_POST['test2']; };
if($_SESSION['test']=="AMD") { $_SESSION['type-amd'] = $_POST['test2']; };


både type-intel og type-amd kommer fra name= på en dropdown?
det den skal gøre det er at den skal gøre type-amd/intel til test2 hvis dropdown med test er en af de 2!
Avatar billede jaw Nybegynder
11. juni 2004 - 07:53 #26
Godmorgen...

Den må jeg nok have igen... Har du et felt, der hedder test2 ?
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 08:22 #27
jo ser du den spyttet ud i echo. som de andre!

men input/dropdown hedder type-intel/amd..
Avatar billede jaw Nybegynder
11. juni 2004 - 08:28 #28
Ja, men den der $_POST['test2'] er det et felt på siden lige før den side hvor du prøver if($_SESSION['test']=="Intel") { $_SESSION['type-intel'] = $_POST['test2']; };
?
Avatar billede jaw Nybegynder
11. juni 2004 - 08:28 #29
Kan lige se en lille fejl - ved dog ikke om det ændrer noget:

if($_SESSION['test']=="Intel") { $_SESSION['type-intel'] = $_POST['test2']; }; <-- fjern det sidste ;
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 08:37 #30
nej test2 er ikke et felt.. det skal være en en variable.. da både type-intel/amd skal blive til test2 alt efter hvad der blev valgt på sidste side!
Avatar billede jaw Nybegynder
11. juni 2004 - 08:38 #31
Ja, men hvor sætter du den variabel?
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 08:47 #32
jeg har to dropdown boxes der er afhængige af hinanden.
når du skifter rundt i den første kommer der en nedenunder f.eks.

name="test"
AMD
Intel

name="type-amd"
2400+
2800+

name="type-intel"
P4 2400mhz
P4 2800mhz
P4 3000mhz


da type-amd/intel kun er en der er valgt. skal jeg bruge den til at ændre navnet på den session der er lavet til f.eks. amd skal ændres til bar test2
og så skal test2 echo.
Avatar billede jaw Nybegynder
11. juni 2004 - 08:57 #33
Jow, men jeg forstår ikke helt :( Jeg er med på, at du har din session med type-amd/intel - men jeg forstår ikke helt hvor værdien i $_POST['test2'] kommer fra... Er du sikker på, at der er en værdi i den overhovedet???
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 09:03 #34
altså type intel/amd skal blive til test2
Avatar billede jaw Nybegynder
11. juni 2004 - 09:11 #35
if($_SESSION['test']=="Intel") {
  $test2 = $_SESSION['type-intel'];
}

Nu vil $test2 indeholde værdien af $_SESSION['type-intel']
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 09:34 #36
<?php
session_start();
?>

<?php
if($mode=="model")
{
?>
<form method="post" action="ting.php?mode=navn">

    <select name="cpu" style="width:200;" onchange="for(i=0;3>i;i++){ document.
        <option value="" selected="selected">CPU:</option>
        <option value="AMD">AMD</option>
        <option value="Intel">Intel</option>
    </select>

    <div id="l0" style="display:block;"></div>
    <div id="l1" style="display:none;">
      <select name="type-amd" style="width:200;">
        <option value="" selected="selected">Type:</option>
        <option value="2400+">2400+</option>
        <option value="2800+">2800+</option>
      </select>
    </div>
    <div id="l2" style="display:none;">
      <select name="type-intel" style="width:200;">
        <option value="" selected="selected">Type:</option>
        <option value="2400">2400</option>
        <option value="2800">2800</option>
      </select>
    </div>

<input type=submit name=submit value=submit>
</form>

<?php
}
if($mode=="navn")
{

$_SESSION['cpu'] = $_POST['cpu'];
$_SESSION['type-amd'] = $_POST['type-amd'];
$_SESSION['type-intel'] = $_POST['type-intel'];

if($_SESSION['cpu']=="AMD") {
  $test2 = $_SESSION['type-amd'];
}

if($_SESSION['cpu']=="Intel") {
  $test2 = $_SESSION['type-intel'];
}
?>
<form method="post" action="ting.php?mode=be">
Navn<input type=text name="navn">
<input type=submit name=submit value=submit>
</form>

<?php
}
if($mode=="be")
{
?>

<?php
$_SESSION['navn'] = $_POST['navn'];
echo "Du har bestilt en: " . $_SESSION['cpu'] . " " . $test2 . "  og du hedder "
?>

<?php
}
?>
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 09:34 #37
kan ikke helt få den til at vise test2
Avatar billede jaw Nybegynder
11. juni 2004 - 10:02 #38
Erhm, nej det kan jeg forstå... Men hvorfor ikke bare echo'e $_SESSION['type-intel'] ? For når først det står i en Session, bliver det jo der indtil din browser bliver lukket
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 10:08 #39
ja.. men type-intel/amd er afhægig af den første dropdown menu jo.

Her er den hele kode:
de andet var copy pastet fra en ssh session ikke så godt!

http://apache.fiskeren.dyndns.dk/plasmastyle/ting.txt
Avatar billede jaw Nybegynder
11. juni 2004 - 10:13 #40
Prøv med: Har bare flyttet lidt rundt...

<?php
$_SESSION['navn'] = $_POST['navn'];
if($_SESSION['cpu']=="AMD") {
  $test2 = $_SESSION['type-amd'];
}

if($_SESSION['cpu']=="Intel") {
  $test2 = $_SESSION['type-intel'];
}

echo "Du har bestilt en: " . $_SESSION['cpu'] . " " . $test2 . "  og du hedder " . $_SESSION['navn'];
?>
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 10:17 #41
hvor vil du smide den ind??
noget af det skal jo køres på "side2" og echo på side 3!
Avatar billede jaw Nybegynder
11. juni 2004 - 10:18 #42
Ja, men jeg har rykket alt det hvor du sætter $test2 en side frem... Find hvor du echoer det hele på side 3, og tilpas det som mit eksempel...
Avatar billede jaw Nybegynder
11. juni 2004 - 10:19 #43
Jeg kan selvf. også bare paste det hele udfra dit link:

<?php
session_start();
?>

<?php
if($mode=="model")
{
?>
<form method="post" action="ting.php?mode=navn">

    <select name="cpu" style="width:200;" onchange="for(i=0;3>i;i++){ document.getElementById('l'+i).style.display='none';} document.getElementById('l'+this.selectedIndex).style.display='block';">
        <option value="" selected="selected">CPU:</option>
        <option value="AMD">AMD</option>
        <option value="Intel">Intel</option>
    </select>

    <div id="l0" style="display:block;"></div>
    <div id="l1" style="display:none;">
      <select name="type-amd" style="width:200;">
        <option value="" selected="selected">Type:</option>
        <option value="2400+">2400+</option>
        <option value="2800+">2800+</option>
      </select>
    </div>
    <div id="l2" style="display:none;">
      <select name="type-intel" style="width:200;">
        <option value="" selected="selected">Type:</option>
        <option value="2400">2400</option>
        <option value="2800">2800</option>
      </select>
    </div>

<input type=submit name=submit value=submit>
</form>

<?php
}
if($mode=="navn")
{

$_SESSION['cpu'] = $_POST['cpu'];
$_SESSION['type-amd'] = $_POST['type-amd'];
$_SESSION['type-intel'] = $_POST['type-intel'];

?>

<form method="post" action="ting.php?mode=be">
Navn<input type=text name="navn">
<input type=submit name=submit value=submit>
</form>

<?php
}
if($mode=="be")
{
?>

<?php

if($_SESSION['cpu']=="AMD") {
  $test2 = $_SESSION['type-amd'];
}

if($_SESSION['cpu']=="Intel") {
  $test2 = $_SESSION['type-intel'];
}
$_SESSION['navn'] = $_POST['navn'];
echo "Du har bestilt en: " . $_SESSION['cpu'] . " " . $test2 . "  og du hedder " . $_SESSION['navn'];
?>

<?php
}
?>
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 10:21 #44
Mange mange tak.. Nu virker det.. Kan du ha en rigtig god weekend..
Avatar billede jaw Nybegynder
11. juni 2004 - 10:22 #45
Hehe, jamn det var da så lidt :) Og i lige måde...
Avatar billede fiskerendk Nybegynder
11. juni 2004 - 10:23 #46
tak..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester