[javascript] uitkomst plaatsen op andere pagina

Pagina: 1
Acties:
  • 270 views sinds 30-01-2008
  • Reageer

  • Paters
  • Registratie: Februari 2003
  • Niet online
Ik wil graag het volgende:

Bezoeker vult een aantal getallen in op pagina1.html. Na een berekening met deze getallen wil ik de uitkomsten op pagina2.html plaatsen.

pagina1.html:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script language="Javascript"> 
<!-- 
function uitkomst() 
{ 
var bedrag = document.subform.bedrag.value;
var verzendkosten = document.subform.verzendkosten.value; 
var totaal = (1*bedrag + 1*verzendkosten);
var totaal2 = (2*bedrag + 2*verzendkosten);
{
document.subform.totaal.value = totaal;
document.subform.totaal2.value = totaal2;
window.location="pagina2.htm";
}
}
</script>

<form name="subform" method="get">
  Aankoopbedrag: 
  <input type="text" name="bedrag">
  Verzendkosten:
  <input type="text" name="verzendkosten">
  <br>
  <input type="button" value="Submit" onClick="uitkomst();">
  <br>
  <input type="text" name="totaal">
  <input type="text" name="totaal2">
  </form>

De verborgen uitkomsten "totaal" en "totaal2" wil ik op pagina2.html te zien krijgen.

pagina2.html:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
function ReadSearch() {

    document.getElementById("totaal").value = totaalpagina2;
    document.getElementById("totaal2").value = totaal2pagina2;
    }
</script>
<body onload="ReadSearch()">

 
  <input type="text" name="totaalpagina2">
  <input type="text" name="toaal2pagina2">

Wat doe ik fout en hoe moet ik het dan wel doen? Ik heb diverse tutorials gelezen maar ik krijg het niet voor elkaar.

[ Voor 35% gewijzigd door Paters op 23-08-2004 16:24 ]


  • Johnny
  • Registratie: December 2001
  • Laatst online: 22-05 10:01

Johnny

ondergewaardeerde internetguru

1. haal de onClick weg en zet een onsubmit in de <form> tag, dan werkt het ook als het formulier via de [Enter] toets word verstuurd.

2. het type "tekst" voor een <input> bestaat niet, verander het naar "text".

3. Doe dat (tijdelijk) ook bij de "hidden" velden, dan kun je zien of de waarden daar ook echt worden ingevuld.

4. Alle <script > tags moeten een type attribuut hebben

5. Je formulier heeft geen method attribuut. Zet deze op method="get" je verstuurde variablen komen dan in de URL te staan.

6. Op de tweede pagina moet je deze variablen uitlezen, hoe dat precies doet is best ingewikkeld, maar je kunt het hier vinden. Maar het is vaak makkelijker om een andere oplossing te bedenken, bijvoorbeeld een enkele pagina gebruiken waarvan je na het drukken op een knop een gedeelte onzichtbaar maakt, en een ander gedeelte zichtbaar, omdat je dan op dezelfe pagina blijft hoef je niet zo moeilijk te doen.

[ Voor 63% gewijzigd door Johnny op 23-08-2004 16:00 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je post nu natuurlijk nergens naar, dus gaat er ook niet veel gebeuren ;)

Je kan het op twee manieren oplossen:
1. Je form tag goed invullen en action="get" gebruiken. Op pagina 2 kan je de URI checken op die waardes.

2. Je zet zelf die waardes achter je pagina2.htm? <-- waardes en zoekt met window.search de waardes weer terug (op pagina2)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Paters
  • Registratie: Februari 2003
  • Niet online
ik heb de bovenstaande code aangepast. Wanneer ik um niet laat doorverwijzen naar pagina2 krijg ik netjes de uitkomsten te zien. Wanneer ik um wel laat doorverwijzen naar pagina2 zie ik op pagina2 de uitkomsten niet staan. Het is straks ook zo (wanneer ik hier verder mee ben) dat afhankelijk van de ingevulde bedragen de bezoeker naar verschillende pagina's wordt gestuurd. Dus het is niet zo dat de bezoeker standaard naar pagina2 wordt gestuurd.

Verwijderd

je krijgt die waarden ook niet zomaar te zien, die moet je dus wel uit de URI zien te vissen:
http://www.rikkertkoppes....showbook.asp?bookId=3#C10

ik zou de boel dus netjes met GET versturen, je kan eventueel later, afhankelijk van de ingevulde waarden, de action property van je formulier aanpassen

  • Paters
  • Registratie: Februari 2003
  • Niet online
ik heb de code enigzins aangepast

pagina1:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<script language="Javascript"> 
<!-- 
function uitkomst() 
{ 
var bedrag = document.subform.bedrag.value;
var verzendkosten = document.subform.verzendkosten.value; 
var totaal = (1*bedrag + 1*verzendkosten);
var totaal2 = (2*bedrag + 2*verzendkosten);

if(bedrag < 100){
document.subform.totaal.value = totaal;
document.subform.totaal2.value = totaal2;
window.location="pagina2.htm";
}
else{ 
document.subform.totaal.value = totaal;
document.subform.totaal2.value = totaal2;
window.location="pagina3.htm";
}
}
</script>

<form name="subform" method="get">
  Aankoopbedrag: 
  <input type="text" name="bedrag">
  Verzendkosten:
  <input type="text" name="verzendkosten">
  <br>
  <input type="button" value="Submit" onClick="uitkomst();">
  <br>
  <input type="text" name="totaal">
  <input type="text" name="totaal2">
  </form>


pagina2:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
function ReadSearch() {
    var aValues = location.search.split('=')[1];
    document.getElementById("test").value = aValues[0];
    document.getElementById("test2").value = aValues[1];
    }
</script>
<body onload="ReadSearch()">

 
  <input type="text" id="test">
  <input type="text" id="test2">

Helaas werkt het nog steeds niet. Heb diverse tutorials doorgelezen maar ik word er niet veel wijzer van.

Verwijderd

je split ook niet goed, lees die link nog maar eens door.

en bovendien doe je nog steeds niets met de action, je zit te friemelen met een window.location, maar dat heeft niemand je hier gezegd, pas de action nou eens aan

  • Paters
  • Registratie: Februari 2003
  • Niet online
Verwijderd schreef op 23 augustus 2004 @ 18:45:
je split ook niet goed, lees die link nog maar eens door.

en bovendien doe je nog steeds niets met de action, je zit te friemelen met een window.location, maar dat heeft niemand je hier gezegd, pas de action nou eens aan
Als ik action in de form zet gaat ie toch naar de link die ik erin zet? Dat is nou net het probleem. Het getal dat de bezoeker invult bepaalt naar welke pagina hij moet worden gestuurd (zie if/else). Als bezoeker een bedrag beneden 100 invult moet hij naar pagina2, bedrag boven 200 moet hij naar pagina3 worden gestuurd.

Tevens kan ik niet duidelijk vinden hoe ik dan wel moet splitten. De voorbeelden in de link zijn anders dan hoe ik het wil.

[ Voor 9% gewijzigd door Paters op 23-08-2004 19:38 ]


Verwijderd

Verwijderd schreef op 23 augustus 2004 @ 16:59:
ik zou de boel dus netjes met GET versturen, je kan eventueel later, afhankelijk van de ingevulde waarden, de action property van je formulier aanpassen
heb je het uberhaupt geprobeerd?

  • Paters
  • Registratie: Februari 2003
  • Niet online
Verwijderd schreef op 23 augustus 2004 @ 19:38:
[...]


heb je het uberhaupt geprobeerd?
ik zou niet weten hoe ik de action property moet aanpassen. Ben helaas nog een noob :'(

[ Voor 7% gewijzigd door Paters op 23-08-2004 19:40 ]


Verwijderd

dan kan je dat toch opzoeken, het is niet de bedoeling dat we alles voor je voorkauwen.
code:
1
2
3
4
5
if (iets) {
  document.subform.action = 'pagina2.htm';
} else {
  document.subform.action = 'pagina3.htm';
}

netter is overigens document.frames['subform'].action, dat geldt voor alles.
en vervang bovendien nog die onclick door onsubmot, zoals al aangegeven door Johnny

  • Johnny
  • Registratie: December 2001
  • Laatst online: 22-05 10:01

Johnny

ondergewaardeerde internetguru

Paters schreef op 23 augustus 2004 @ 19:40:
[...]

ik zou niet weten hoe ik de action property moet aanpassen. Ben helaas nog een noob :'(
code:
1
2
3
4
5
6
7
8
var page = "elcheapo.html";

if(bedrag > 200) {
page = "expensive.html";
}
document.getElementById('subform').action = page;

<form id="subform" method="get" action="">


Edit: wat mophor dus zei.

[ Voor 16% gewijzigd door Johnny op 23-08-2004 19:47 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Paters
  • Registratie: Februari 2003
  • Niet online
Verwijderd schreef op 23 augustus 2004 @ 19:44:
dan kan je dat toch opzoeken, het is niet de bedoeling dat we alles voor je voorkauwen.
code:
1
2
3
4
5
if (iets) {
  document.subform.action = 'pagina2.htm';
} else {
  document.subform.action = 'pagina3.htm';
}

netter is overigens document.frames['subform'].action, dat geldt voor alles.
en vervang bovendien nog die onclick door onsubmot, zoals al aangegeven door Johnny
Ik krijg wel het antwoord maar pagina2 of 3 wordt niet geopend.

Verwijderd

wat bedoel je daar mee? waar krijg je je antwoord dan in? heb je misschien een voorbeeld online? want ik snap nu niet echt wat je bedoelt

  • Paters
  • Registratie: Februari 2003
  • Niet online
Ik heb aan de praat gekregen. Ik haal de getallen niet meer met javascript uit de url maar met php. Dit werkt veel makkelijker.

[ Voor 85% gewijzigd door Paters op 24-08-2004 13:37 ]

Pagina: 1