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?
Annonceindlæg fra Salesforce
$_SESSION['mhz'] = $_POST['mhz'] og så fremdeles, eller hvad tænker du på?
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
soooooorry - så ikke kategorinaen c",)
selv en pro kan tage fejl i farten :)
men superior ide kan igså bruges.. bare med <? $_REQEUST['mhz']; ?> eller noget i den stil.. (ikke afprøvet)
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..
og så skal det hele selvfølgelig sendes i en mail.
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.?
så er det nok smartest at gemme oplysningerne i en session. hvor du så slutte af med en mailform, som sender oplysningerne
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 } ?>
10. juni 2004 - 19:48
#11
også lidt det jeg havde tænkt på..
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...
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..
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...
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 } ?>
10. juni 2004 - 20:19
#16
undskyld model er ændret til test
10. juni 2004 - 20:20
#17
men virker stadig ikke..
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'
10. juni 2004 - 20:50
#19
10. juni 2004 - 20:53
#21
den åbner den samme side jo!
10. juni 2004 - 20:54
#22
skulle jo gerne gå videre til =navn bagefter.. og bagefter det =be i samme vindue
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!
10. juni 2004 - 21:00
#24
Hehe, havde jeg bare kunne sige, jeg aldrig selv havde lavet den :)
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!
11. juni 2004 - 07:53
#26
Godmorgen... Den må jeg nok have igen... Har du et felt, der hedder test2 ?
11. juni 2004 - 08:22
#27
jo ser du den spyttet ud i echo. som de andre! men input/dropdown hedder type-intel/amd..
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']; }; ?
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 ;
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!
11. juni 2004 - 08:38
#31
Ja, men hvor sætter du den variabel?
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.
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???
11. juni 2004 - 09:03
#34
altså type intel/amd skal blive til test2
11. juni 2004 - 09:11
#35
if($_SESSION['test']=="Intel") { $test2 = $_SESSION['type-intel']; } Nu vil $test2 indeholde værdien af $_SESSION['type-intel']
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 } ?>
11. juni 2004 - 09:34
#37
kan ikke helt få den til at vise test2
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
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']; ?>
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!
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...
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 } ?>
11. juni 2004 - 10:21
#44
Mange mange tak.. Nu virker det.. Kan du ha en rigtig god weekend..
11. juni 2004 - 10:22
#45
Hehe, jamn det var da så lidt :) Og i lige måde...
11. juni 2004 - 10:23
#46
tak..
Vi tilbyder markedets bedste kurser inden for webudvikling