11. april 2004 - 10:41Der er
6 kommentarer og 1 løsning
Hjælp til kalkulation og overførsel af felter
Jeg håber ikke at I bliver alt for forskrækket, for jeg indsætter hele den kode som jeg arbejder med. Det forholder sig sådan at jeg er ved at lave en formular for en skole, hvor det skal være muligt for elever at tilmelde sig linier og fag via nettet. Som det fremgår af koden så overføres de valgte fag til popup side der viser hvilke fag de har valgt. Det er dog meningen at prisen på fagene skal med over på denne side, samt en sammenlægning af priserne sådan så eleven kan se den samlede pris. Er der nogen der kan hjælpe mig med det? Jeg er villig til at smide en god klat point ud.
//besked til bruger indhold = indhold + "Hvis nedenstående er korrekt, så <a href=\"#\" onClick=\"window.close()\;\">luk dette vindue</a> og send formularen.<br /><br />";
indhold = indhold + "<form><input type=\"button\" value=\"Print denne side\" onClick=\"refresh()\;\"></form>"
//her er det layout, det skal previewes i indhold = indhold + "<table width=\"90%\" height=\"245\" border=\"1\" cellpadding=\"2\" bordercolorlight=\"#C0C0C0\">";
//eksamensskole indhold = indhold + "<tr><td>Du ønsker at gå til eksamen på følgende skole:</td>"; indhold = indhold + "<td>" + document.form1.skole.value + "</td></tr>";
//Brug af pc'er indhold = indhold + "<tr><td>Du ønsker at bruge pc'er til eksamen:</td>"; indhold = indhold + "<td>" + document.form1.PC.value + "</td></tr>";
//preview-vindue åbnes og indhold skrives til det win = window.open("preview.asp", "prevVindue", "width=700,height=600,left=300,top=50,toolbar=yes,scrollbars=yes,status=yes,menubar=yes,resizable=yes"); win.document.write(indhold); }
</script>
</head>
<body>
<% If request.ServerVariables("REQUEST_METHOD") = "POST" Then
if not msg.Send("mail.xxxx.dk") then Response.write msg.log else Response.Write "<font class='subheading'>Din tilmelding er blevet sendt</font><br><br>" end if
end if %>
<form name="form1" method="post">
<table width="500" height="245" border="1" cellpadding="2" align="center" bordercolorlight="#C0C0C0"> <tr><font size="2">Du kan tilmelde dig elektronisk til et eller flere kurser ved at udfylde nedenstående blanket. Når du har udfyldt samtlige felter kan du gennemse dine oplysninger og printe blanketten ud ved at vælge knappen "gennemse oplysninger" nederst på siden. <br><br>(Den udprintede version er din kvittering for tilmelding)</font><br><br> </tr> <tr>
<tr> <td width="500" height="686" valign="bottom"> <p><strong>Generelle adgangsbetingelser:</strong> </p> <p>Mindst to års relevant erhvervsarbejde og opfylder adgangsbetingelser for uddannelsen.</p> <p>For linierne:</p> <ul> <li>International handel og markedsføring</li> <li>Kommunikation og formidling</li> <li>Økonomi og Ressourcestyring</li> <li>Innovation og produktionsoptimering</li> </ul> <p>Gælder følgende:</p> <ol> <li>En relevant erhvervsuddannelse med <br> studiekompetence svarende til engelsk C og matematik<br> C/erhvervsøkonomi C</li> <li>En relevant grunduddannelse for voksne med engelsk<br> C og matematik C/erhvervsøkonomi C</li> <li>En adgangsgivende eksamen med matematik<br> C/erhvervsøkonomi C</li> <li>En relevant uddannelse på mindst samme<br> niveau som nr. 1-3</li> </ol> <p>For linien Ledelse gælder følgende:</p> <ol> <li>En relevant erhvervsuddannelse med<br> studiekompetence svarende til engelsk C</li> <li>En relevant grunduddannelse for voksne med engelsk<br> C</li> <li>En adgangsgivende eksamen</li> <li>En anden relevant uddannelse på mindst samme<br> niveau som nr. 1-3</li> <li>Mindst 2 års relevant erhvervserfaring efter gennemført<br> adgangsgivende uddannelse</li> </ol>
<ul> <p> </p> </ul></td>
</tr>
</table>
</center>
<CENTER> <P>Jeg ønsker at gå til eksamen på følgende skole </P></CENTER> <CENTER> <P><SELECT size=1 name=skole> <option value="(Vælg skole på listen)">(Vælg skole på listen)</option> <option value="Niels Brock, København">Niels Brock, København</option> <option value="Ceus, Nykøbing">Ceus, Nykøbing F</option> <option value="Svendborg Handelsskole">Svendborg Handelsskole</option> <option value="Viborg Handelsskole">Viborg Handelsskole</option> <option value="Skanderborg-Odder Handelsskole">Skanderborg-Odder Handelsskole</option> <option value="IBC Kolding">IBC Kolding</option> <option value="Tønder Handelsskole">Tønder Handelsskole</option> <option value="EUC - Nordvestsjælland">EUC - Nordvestsjælland</option> <option value="Grønlands Handelsskole">Grønlands Handelsskole</option> <option value="Udlandet">Udlandet</option> </SELECT> <BR>(skolen forbeholder sig retten til at aflyse et hold,<BR>såfremt der ikke opnås tilstrækkelig antal tilmeldinger.)<BR><BR>Jeg ønsker at anvende PC'er ved eksamen <SELECT size=1 name=PC> <OPTION value=Ja>Ja<OPTION value=Nej selected>Nej</OPTION></SELECT> </P></CENTER> <DIV align=left> <BLOCKQUOTE> <BLOCKQUOTE> <BLOCKQUOTE> <P><STRONG><center>Det er vigtigt at du allerede ved<br> tilmeldingen beslutter dig for om du<br> ønsker at anvende PC til eksamen.<br> Skolerne har et begrænset antal <br> edb-pladser til rådighed. Hvis du vil<br> bruge PC til eksamen anvendes<br> skolens udstyr. Skolerne anvender<br> Microsoft officepakken. </center></STRONG> </P> </BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></DIV>
<p>Så snart vi har modtaget din tilmelding registreres du som kursist i vores kursusdatabase. Du vil senere få fremsendt et giroindbetalingkort. Efter at vi har registreret din indbetaling og umiddelbart inden kursusstart får du tilsendt et <strong>brugernavn </strong>og <strong>password</strong> der giver adgang til de kurser du har tilmeldt dig.</p>
Absolut ikke stress-testet, men den holdt de tests jeg gav den ...
-- og der var nogle grimlings ind imellem, jeg var bl.a. nødt til at tage højde for pludselige center-tags, hvor de ikke var nødvendige ...
Generelt har jeg ryddet en anelse op i din kode (f.eks. fjernet dobbelt-forekomster af </body></html> !-), men tættekammen har jeg ikke brugt og det er bestemt ikke en kode, jeg ville prale af ...
Jeg har taget den forudsætning, at strukturen med prisen i en celle bagved er helt fast, og koden skal skrives helt anderledes, hvis du laver bare en anelse om i det !o]
Jeg har endvidere forudsat, at brugerne bruger nyere browsere, som forstår DOM (altså den anerkendte standard fra w3c), dvs. Mozilla, IE5+, NS6+ og stort set alle andre nyere browsere ...
//besked til bruger indhold += "Hvis nedenstående er korrekt, så <a href=\"#\" onClick=\"window.close()\;\">luk dette vindue</a> og send formularen.<br /><br />";
indhold += "<form><input type=\"button\" value=\"Print denne side\" onClick=\"refresh()\;\"></form>"
//her er det layout, det skal previewes i indhold += "<table width=\"90%\" height=\"245\" border=\"1\" cellpadding=\"2\" bordercolorlight=\"#C0C0C0\">";
//osv. - resten af felterne fylder du bare ind som det ovenstående.
//linietilmelding indhold += "<tr><td>Du har tilmeldt dig følgende linie:</td>"; indhold += "<td>" + f.linie.value + "</td></tr>";
//info fra checkboxe var samlet = 0;
indhold += "<tr><td>Du har tilmeldt dig følgende kurser:</td><td>";
for (var i = 0; i < f.kursus.length; i++) {
felt = f.kursus[i];
if (felt.checked) { indhold += felt.value + "<br />"; samlet += findPrice(felt); } }
samlet = ""+samlet; samlet = samlet.split("").reverse().join(""); samlet = samlet.replace(/(\d{3})/g,"$1."); samlet = samlet.split("").reverse().join("");
//preview-vindue åbnes og indhold skrives til det win = window.open("preview.asp", "prevVindue", "width=700,height=600,left=300,top=50,toolbar=yes,scrollbars=yes,status=yes,menubar=yes,resizable=yes"); win.document.write(indhold); }
</script>
</head>
<body>
<% If request.ServerVariables("REQUEST_METHOD") = "POST" Then
if not msg.Send("mail.xxxx.dk") then Response.write msg.log else Response.Write "<font class='subheading'>Din tilmelding er blevet sendt</font><br><br>" end if
end if %>
<form name="form1" method="post">
<table width="500" height="245" border="1" cellpadding="2" align="center" bordercolorlight="#C0C0C0"> <tr><font size="2">Du kan tilmelde dig elektronisk til et eller flere kurser ved at udfylde nedenstående blanket. Når du har udfyldt samtlige felter kan du gennemse dine oplysninger og printe blanketten ud ved at vælge knappen "gennemse oplysninger" nederst på siden. <br><br>(Den udprintede version er din kvittering for tilmelding)</font><br><br> </tr> <tr>
<tr> <td width="500" height="686" valign="bottom"> <p><strong>Generelle adgangsbetingelser:</strong> </p> <p>Mindst to års relevant erhvervsarbejde og opfylder adgangsbetingelser for uddannelsen.</p> <p>For linierne:</p> <ul> <li>International handel og markedsføring</li> <li>Kommunikation og formidling</li> <li>Økonomi og Ressourcestyring</li> <li>Innovation og produktionsoptimering</li> </ul> <p>Gælder følgende:</p> <ol> <li>En relevant erhvervsuddannelse med <br> studiekompetence svarende til engelsk C og matematik<br> C/erhvervsøkonomi C</li> <li>En relevant grunduddannelse for voksne med engelsk<br> C og matematik C/erhvervsøkonomi C</li> <li>En adgangsgivende eksamen med matematik<br> C/erhvervsøkonomi C</li> <li>En relevant uddannelse på mindst samme<br> niveau som nr. 1-3</li> </ol> <p>For linien Ledelse gælder følgende:</p> <ol> <li>En relevant erhvervsuddannelse med<br> studiekompetence svarende til engelsk C</li> <li>En relevant grunduddannelse for voksne med engelsk<br> C</li> <li>En adgangsgivende eksamen</li> <li>En anden relevant uddannelse på mindst samme<br> niveau som nr. 1-3</li> <li>Mindst 2 års relevant erhvervserfaring efter gennemført<br> adgangsgivende uddannelse</li> </ol>
<ul> <p> </p> </ul></td>
</tr>
</table>
</center>
<center> <p>Jeg ønsker at gå til eksamen på følgende skole </p></center> <center> <p><select size=1 name=skole> <option value="(Vælg skole på listen)">(Vælg skole på listen)</option> <option value="Niels Brock, København">Niels Brock, København</option> <option value="Ceus, Nykøbing">Ceus, Nykøbing F</option> <option value="Svendborg Handelsskole">Svendborg Handelsskole</option> <option value="Viborg Handelsskole">Viborg Handelsskole</option> <option value="Skanderborg-Odder Handelsskole">Skanderborg-Odder Handelsskole</option> <option value="IBC Kolding">IBC Kolding</option> <option value="Tønder Handelsskole">Tønder Handelsskole</option> <option value="EUC - Nordvestsjælland">EUC - Nordvestsjælland</option> <option value="Grønlands Handelsskole">Grønlands Handelsskole</option> <option value="Udlandet">Udlandet</option> </select> <br>(skolen forbeholder sig retten til at aflyse et hold,<br>såfremt der ikke opnås tilstrækkelig antal tilmeldinger.)<br><br> Jeg ønsker at anvende PC'er ved eksamen <select size=1 name=PC> <option value=Ja>Ja<option value=Nej selected>Nej</option></select> </p></center> <div align=left> <blockquote> <blockquote> <blockquote> <p><strong><center>Det er vigtigt at du allerede ved<br> tilmeldingen beslutter dig for om du<br> ønsker at anvende PC til eksamen.<br> Skolerne har et begrænset antal <br> edb-pladser til rådighed. Hvis du vil<br> bruge PC til eksamen anvendes<br> skolens udstyr. Skolerne anvender<br> Microsoft officepakken. </center></strong> </p> </blockquote></blockquote></blockquote></div>
<p>Så snart vi har modtaget din tilmelding registreres du som kursist i vores kursusdatabase. Du vil senere få fremsendt et giroindbetalingkort. Efter at vi har registreret din indbetaling og umiddelbart inden kursusstart får du tilsendt et <strong>brugernavn </strong>og <strong>password</strong> der giver adgang til de kurser du har tilmeldt dig.</p>
Hej Roenving! Jeg takker mange gange for det du har lavet, men er det ikke muligt at den enkelte pris (venstre justeret) placeres udfra det fag den hører til, og så nedenunder (sådan som du har gjort det) placerer den samlede pris.
Det nemmeste er helt klart bare at sætte det ind i forlængelse af kursusnavnet, så skal der laves om to steder:
-- her:
function findPrice(fld){ var par=fld.parentNode; for(;par.tagName!="TD";par=par.parentNode); var sib = par.nextSibling; for(;sib.tagName!="TD";sib=sib.nextSibling); return sib.innerHTML; }
-- og her:
//info fra checkboxe var samlet = 0,pris;
indhold += "<tr><td>Du har tilmeldt dig følgende kurser:</td><td>";
samlet = ""+samlet; samlet = samlet.split("").reverse().join(""); samlet = samlet.replace(/(\d{3})/g,"$1."); samlet = samlet.split("").reverse().join("");
<script type="text/javascript"> function findPrice(fld){ var par=fld.parentNode; for(;par.tagName!="TD";par=par.parentNode); var sib = par.nextSibling; for(;sib.tagName!="TD";sib=sib.nextSibling); return sib.innerHTML; }
function prev(f) { var indhold = "<html><head><title>Preview</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">"
//besked til bruger indhold += "Hvis nedenstående er korrekt, så <a href=\"#\" onClick=\"window.close()\;\">luk dette vindue</a> og send formularen.<br /><br />";
indhold += "<form><input type=\"button\" value=\"Print denne side\" onClick=\"refresh()\;\"></form>"
//her er det layout, det skal previewes i indhold += "<table width=\"90%\" height=\"245\" border=\"1\" cellpadding=\"2\" bordercolorlight=\"#C0C0C0\">";
samlet = ""+samlet; samlet = samlet.split("").reverse().join(""); samlet = samlet.replace(/(\d{3})/g,"$1."); samlet = samlet.split("").reverse().join("");
//preview-vindue åbnes og indhold skrives til det win = window.open("preview.asp", "prevVindue", "width=700,height=600,left=300,top=50,toolbar=yes,scrollbars=yes,status=yes,menubar=yes,resizable=yes"); win.document.write(indhold); }
</script>
</head>
<body>
<% If request.ServerVariables("REQUEST_METHOD") = "POST" Then
if not msg.Send("mail.xxxx.dk") then Response.write msg.log else Response.Write "<font class='subheading'>Din tilmelding er blevet sendt</font><br><br>" end if
end if %>
<form name="form1" method="post">
<table width="500" height="245" border="1" cellpadding="2" align="center" bordercolorlight="#C0C0C0"> <tr><font size="2">Du kan tilmelde dig elektronisk til et eller flere kurser ved at udfylde nedenstående blanket. Når du har udfyldt samtlige felter kan du gennemse dine oplysninger og printe blanketten ud ved at vælge knappen "gennemse oplysninger" nederst på siden. <br><br>(Den udprintede version er din kvittering for tilmelding)</font><br><br> </tr> <tr>
<tr> <td width="500" height="686" valign="bottom"> <p><strong>Generelle adgangsbetingelser:</strong> </p> <p>Mindst to års relevant erhvervsarbejde og opfylder adgangsbetingelser for uddannelsen.</p> <p>For linierne:</p> <ul> <li>International handel og markedsføring</li> <li>Kommunikation og formidling</li> <li>Økonomi og Ressourcestyring</li> <li>Innovation og produktionsoptimering</li> </ul> <p>Gælder følgende:</p> <ol> <li>En relevant erhvervsuddannelse med <br> studiekompetence svarende til engelsk C og matematik<br> C/erhvervsøkonomi C</li> <li>En relevant grunduddannelse for voksne med engelsk<br> C og matematik C/erhvervsøkonomi C</li> <li>En adgangsgivende eksamen med matematik<br> C/erhvervsøkonomi C</li> <li>En relevant uddannelse på mindst samme<br> niveau som nr. 1-3</li> </ol> <p>For linien Ledelse gælder følgende:</p> <ol> <li>En relevant erhvervsuddannelse med<br> studiekompetence svarende til engelsk C</li> <li>En relevant grunduddannelse for voksne med engelsk<br> C</li> <li>En adgangsgivende eksamen</li> <li>En anden relevant uddannelse på mindst samme<br> niveau som nr. 1-3</li> <li>Mindst 2 års relevant erhvervserfaring efter gennemført<br> adgangsgivende uddannelse</li> </ol>
<ul> <p> </p> </ul></td>
</tr>
</table>
</center>
<center> <p>Jeg ønsker at gå til eksamen på følgende skole </p></center> <center> <p><select size=1 name=skole> <option value="(Vælg skole på listen)">(Vælg skole på listen)</option> <option value="Niels Brock, København">Niels Brock, København</option> <option value="Ceus, Nykøbing">Ceus, Nykøbing F</option> <option value="Svendborg Handelsskole">Svendborg Handelsskole</option> <option value="Viborg Handelsskole">Viborg Handelsskole</option> <option value="Skanderborg-Odder Handelsskole">Skanderborg-Odder Handelsskole</option> <option value="IBC Kolding">IBC Kolding</option> <option value="Tønder Handelsskole">Tønder Handelsskole</option> <option value="EUC - Nordvestsjælland">EUC - Nordvestsjælland</option> <option value="Grønlands Handelsskole">Grønlands Handelsskole</option> <option value="Udlandet">Udlandet</option> </select> <br>(skolen forbeholder sig retten til at aflyse et hold,<br>såfremt der ikke opnås tilstrækkelig antal tilmeldinger.)<br><br> Jeg ønsker at anvende PC'er ved eksamen <select size=1 name=PC> <option value=Ja>Ja<option value=Nej selected>Nej</option></select> </p></center> <div align=left> <blockquote> <blockquote> <blockquote> <p><strong><center>Det er vigtigt at du allerede ved<br> tilmeldingen beslutter dig for om du<br> ønsker at anvende PC til eksamen.<br> Skolerne har et begrænset antal <br> edb-pladser til rådighed. Hvis du vil<br> bruge PC til eksamen anvendes<br> skolens udstyr. Skolerne anvender<br> Microsoft officepakken. </center></strong> </p> </blockquote></blockquote></blockquote></div>
<p>Så snart vi har modtaget din tilmelding registreres du som kursist i vores kursusdatabase. Du vil senere få fremsendt et giroindbetalingkort. Efter at vi har registreret din indbetaling og umiddelbart inden kursusstart får du tilsendt et <strong>brugernavn </strong>og <strong>password</strong> der giver adgang til de kurser du har tilmeldt dig.</p>
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.