redirect in javascript

@ KristophS

Da diese Formularseite ein Ausschnitt aus meinem Webshop ist, und diese Formulare auf PHP-Basis laufen, sollte das kein Problem sein.

Nur weiß ich nicht, wie es geht, dass sich der Redirect-Aufruf im neuen Fenster mit dem Klick "Send Order" glechzeitig mit dem Speichern der Formulardaten geht.

Wenn ich das richtig checke, müsste eigentlich nur der Redirect-Aufruf abgeändert werden, dass er sich im neuen Fenster öffnet. Das Formular macht deswegen ja trotzdem nichts anderes und speichert die Daten trotzdem.

Wie schaff ich es also, dass sich der Redirect-Aufruf im neuen Fenster öffnet?
 
Danke!

Wenn Du mir jetzt noch sagst, wohin ich diesen Code stellen muss? :) und was muss ich ersetzen - nur Formularname oder auch redirect und value

vgl. Code-ausschnitt meines ersten Beitrages.
 
Zuletzt bearbeitet:
Code:
<script type="text/javascript">
<!--
function validateform(objForm)
{
if(typeof objForm.redirect=='object')
    {
    window.open(objForm.redirect.value);
    }
return true;
}
//-->
</script>
..wo das in der Seite steht, ist egal.

Und das Formular weiterhin:
Code:
<form onsubmit="return validateform(this)">
 
geht immer noch nicht!

jetzt zeig ich euch mal den code - denn es funtioniert nicht. Was ist falsch am Code?

Die Seite "Redirect" soll mit dem Klick "Send Order" in einem neuen Fenster geöffnet werden, gleichzeitig sollen die Formulardaten gespeichert werden, wie im Form-Tag definiert!

Code:
<html>
<head>
[...]
</head>

[...]

<FORM name=wbsForm onsubmit="return validateform(this)" action=https://ssl.xxx.de/xxx/xxx/xxx.php?xxx method=post>
<INPUT type=hidden value=bestell_bestaetigung.html name=cp_order_confirm> 

<SCRIPT language=javascript>

document.writeln('<input type="hidden" name="redirect" value="http://www.xxx.de">');

}
</SCRIPT>



<script type="text/javascript">
<!--
function validateform(objForm)
{
if(typeof objForm.redirect=='object')
    {
    window.open(objForm.redirect.value);
    }
return true;
}
//-->
</script>

[...] // hier stehen die Formularfelder

<TABLE style="WIDTH: 603px; HEIGHT: 44px">
<TR><TD class=berMain align=center height=40>
After sending your order please wait a moment. Under certain circumstances it may take a few seconds before the order confirmation page appears. Please don't press the "Send order" button a second time for <STRONG>this will send a second order</STRONG>.
<BR><INPUT onclick=javascript:window.print() type=button value="Print order" name=drucken>&nbsp;
<INPUT type=submit value="Send order" name=absenden onclick="window.open(wbsForm.redirect.value,'_blank');
">



</TD></TR></TABLE></FORM></DIV>
	</BODY>
</HTML>

Danke schonmal für Eure Hilfe!
 
Das ist doch mal ein schönes Beispiel für Syntaxfehler und deren Auswirkungen :)

In deinem ersten Skriptblock...wo du das redirect-Feld in die Seite schreibst... da steht eine einsame geschweifte Klammer.
Diese hat da nix zu suchen...aufgrund dieses Fehlers wird das redirect-Feld überhaupt nicht in die Seite geschrieben.

Lass dir während der Entwicklungsphase im Browser am besten Javascript-Fehler anzeigen....diese Option hast du in allen gebräuchlichen Browsern.
Der IE meldet z.B. Zeile 15, Zeichen 1, Syntaxfehler.... rate mal, was in Zeile 15 steht;)

Nimm also diese geschweifte Klammer heraus, und es geht.
 
@ fatalus - Danke

Ja klar, danke für den Hinweis. Jetzt geht es.

Das Problem liegt jetzt nur noch innerhlab des Javascripts, in dem der Redirect-Aufruf ist:

Ich hatte im vorherigen Beispiel nur zur Vereinfachung alles rausgenommen, was in dem JavaScript steht, und nur den Redirect-Aufurf stehen gelassen. So schaut es aber volständig aus:

Code:
<SCRIPT language=javascript>

for (var j = 1; j < {!wktotal:EUR#coupon}.;length; j++;)
	{
		if ({!wktotal:EUR#coupon} == "Total")
		{
		var k       = {!wktotal:EUR#coupon}.length;
		var AMOUNT      = {!wktotal:EUR#coupon}.substr(2,k);
		AMOUNT      = AMOUNT.replace(",","");
		}
		
	}
	
  	var ACCOUNTID   = "xxxxx-xxxxxx";
  	var CURRENCY    = "EUR";
 	var DESCRIPTION = "Gesamtbetrag";
  	var NOTIFY      = "xxx@xxx.de";
  	var CVC         = "yes";
  	var NAME        = "yes";
	var AUTOCLOSE   = "10";
	var url         = "http://xxx.de/scripts/Redirect.asp?AMOUNT=" + AMOUNT + "&ACCOUNTID=" + ACCOUNTID + "&CURRENCY=" + CURRENCY + "&ORDERID=" + ORDERID + "&DESCRIPTION=" + DESCRIPTION + "&NOTIFYADDRESS=" + NOTIFY + "&CCCVC=" + CVC + "&CCNAME=" + NAME + "&AUTOCLOSE=" + AUTOCLOSE";
	

	document.writeln('<input type="hidden" name="redirect" value="+url+">');
	
</SCRIPT>


Ich vermute, dass in diesem Script irgendwo der Fehler steckt. Hier wird zunächst der Preis ermittelt, dann soll das Koma rausgenommen werden - also statt 13,97 1397.

Die URL im Redirect-Aufruf soll dann dynamisch gefüllt werden.

So wie ich es jetzt hier stehen habe, funktioniert es leider nicht. Das Problem ist, dass überhaupt kein Fenster auf geht!

Danke für Eure Hilfe :) !
 
Poste doch mal den Kompletten,geparsten Code..also ohne PHP oder sonstiges servberseitiges Skript...so, wie es da zu lesen ist, kann man nur erahnen, was bspw.wktotal:EUR#coupon sein soll... das ist aber für eine "Diagnose" nicht ausreichend.:(
 
Ok, kein Problem.

{!wktotal:EUR#coupon} ist übrigens die Variable des Shops, die für den Gesamtbetrag steht.


Hier der komplette Code:

Code:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="xxxxxxxx">
<title>Ihre Bestellung</title>
<link rel="stylesheet" href="xxx.css">
<SCRIPT language=javascript src="scripts/xxx.js"></SCRIPT>
<SCRIPT language=javascript src="scripts/xxxxxx.js"></SCRIPT>
</head>

<BODY class="" style="MARGIN-TOP: 15px; MARGIN-LEFT: 15px" background=images/backgrd1.gif>
<DIV><IMG height=86 alt="" hspace=65 src="images/ende-1-2-33-4.gif" width=472 border=0><BR>

<FORM name=xxxx onsubmit="return validateform(this)" action=https://xxx/xxx/xxx/query.php?cp_tpl=xxx&xxx;cp_sid={.id}{.sid} method=post>
<INPUT type=hidden value=bestell_bestaetigung.html name=cp_order_confirm> 
<TABLE class=berMain cellSpacing=0 cellPadding=3 width=603 border=0>


<SCRIPT language=javascript>

for (var j = 1; j < {!wktotal:EUR#coupon}.;length; j++;)
	{
		if ({!wktotal:EUR#coupon} == "Total")
		{
		var k       = {!wktotal:EUR#coupon}.length;
		var AMOUNT      = {!wktotal:EUR#coupon}.substr(2,k);
		AMOUNT      = AMOUNT.replace(",","");
		}
		
	}
	
  	var ACCOUNTID   = "xxxx-xxxx";
  	var CURRENCY    = "EUR";
 	var DESCRIPTION = "Gesamtbetrag";
  	var NOTIFY      = "xxx@mail.de";
  	var CVC         = "yes";
  	var NAME        = "yes";
	var AUTOCLOSE   = "10";
	var url         = "http://xxx.de/xxx/Redirect.asp?AMOUNT=" + AMOUNT + "&ACCOUNTID=" + ACCOUNTID + "&CURRENCY=" + CURRENCY + "&ORDERID=" + ORDERID + "&DESCRIPTION=" + DESCRIPTION + "&NOTIFYADDRESS=" + NOTIFY + "&CCCVC=" + CVC + "&CCNAME=" + NAME + "&AUTOCLOSE=" + AUTOCLOSE";
	

	document.writeln('<input type="hidden" name="redirect" value="+url+">');
	
</SCRIPT>

<script type="text/javascript">
<!--
function validateform(objForm)
{
if(typeof objForm.redirect=='object')
    {
    window.open(objForm.redirect.value);
    }
return true;
}
//-->
</script>



<TR><TD class=listHeading vAlign=center width=649 colSpan=5>Your order</TD></TR><TR><TD vAlign=center width=649 colSpan=5><STRONG>Your Address Data</STRONG></TD></TR><TR><TD class=listCell vAlign=center width=100 height=20>Name</TD>
<TD class=listCell vAlign=center width=250>{.vorname} {.name} </TD>
<TD class=berMain vAlign=center width=25>&nbsp;</TD>
<TD class=listCell vAlign=center width=100>&nbsp;Company</TD>
<TD class=listCell vAlign=center width=150>&nbsp;{.firma}</TD></TR>
<TR>
<TD class=listCell vAlign=center width=100 height=20>Street</TD>
<TD class=listCell vAlign=center width=250>{.strasse}</TD>
<TD class=berMain vAlign=center width=25>&nbsp;</TD>
<TD class=listCell vAlign=center width=100>&nbsp;Phone</TD>
<TD class=listCell vAlign=center width=150>&nbsp;{.telefon}</TD></TR>
<TR>
<TD class=listCell vAlign=center width=100 height=20>ZIP / Town</TD>
<TD class=listCell vAlign=center width=250>{.plz} {.ort}</TD>
<TD class=berMain vAlign=center width=25>&nbsp;</TD>
<TD class=listCell vAlign=center width=100>&nbsp;Email address</TD>
<TD class=listCell vAlign=center width=150>&nbsp;{.email}</TD></TR>
<TR height=20>
<TD class=listCell vAlign=center width=100 height=20>Country</TD>
<TD class=listCell vAlign=center width=250 height=20>{.land}</TD>
<TD class=berMain vAlign=center width=25 height=20>&nbsp;</TD>
<TD class=listCell vAlign=center width=100 height=20>&nbsp;Payment</TD>
<TD class=listCell vAlign=center width=150 height=20>&nbsp;{.zahlbed}</TD></TR>
<TR height=20>
<TD class=listCell vAlign=top width=100 height=20>Delivery</TD>
<TD class=listCell vAlign=top width=250 height=71 rowSpan=3><I>{.la_vorname} {.la_name}<BR>{.la_firma}<BR>{.la_strasse} <BR>{.la_plz} {.la_ort}<BR>{.la_land}</I></TD>
<TD vAlign=center width=25 height=20>&nbsp;</TD>
<TD vAlign=center width=100 height=20>
<P>&nbsp;Customer No.</P></TD>
<TD vAlign=center width=150 height=20>
<P>&nbsp;{.knr}</P></TD></TR>
<TR height=19>
<TD class=listCell vAlign=center width=100 height=19>&nbsp;</TD>
<TD vAlign=center width=25 height=19>&nbsp;</TD>
<TD vAlign=center width=100 height=19>&nbsp;Voucher No.</TD>
<TD vAlign=center width=150 height=19>&nbsp;{.orderadd_Coupon}</TD></TR>
<TR height=20>
<TD class=listCell vAlign=center width=100 height=20>&nbsp;</TD>
<TD vAlign=center width=25 height=20>&nbsp;</TD>
<TD vAlign=center width=100 height=20>&nbsp;</TD>
<TD vAlign=center width=150 height=20>&nbsp;</TD></TR>
<TR height=19>
<TD class=listCell vAlign=top width=100 height=19>Date of delivery</TD>
<TD vAlign=top width=250 height=19>{.liefertermin}</TD>
<TD vAlign=center width=25 height=19>&nbsp;</TD>
<TD vAlign=center width=100 height=20>&nbsp;</TD>
<TD vAlign=center width=150 height=19>&nbsp;</TD></TR>
<TR height=19>
<TD class=listCell vAlign=center align=right width=356 colSpan=2 height=20>I want to join the CD ring:</TD>
<TD vAlign=center width=25 height=19>&nbsp;</TD>
<TD vAlign=center width=100 height=20>&nbsp;{.orderadd_CDRingBeitritt} </TD>
<TD vAlign=center width=150 height=19>&nbsp;</TD></TR>
<TR height=19>
<TD class=listCell vAlign=center align=right width=356 colSpan=2 height=20>I am already a CD ring member:</TD>
<TD vAlign=center width=25 height=19>&nbsp;</TD>
<TD vAlign=center width=100 height=20>&nbsp;{.orderadd_CDRingMitglied} </TD>
<TD vAlign=center width=150 height=19>&nbsp;</TD></TR>
<TR height=19>
<TD class=listCell vAlign=top width=100 height=19>Message</TD>
<TD vAlign=center width=543 colSpan=4 height=19>{.bemerkung}</TD></TR></TABLE>
<!-- wbsif{UserDaten} feld="zahlbed" wert="4" -->
<TABLE cellSpacing=0 cellPadding=3 width=603>

<TR>
<TD class=listheading width=350 colSpan=2><STRONG>Your bank account</STRONG></TD></TR>
<TR>
<TD class=listCell width=100>Bank</TD>
<TD width=250 bgColor=#ffffff><INPUT onblur=notempty() value={.bank} name={in.bank}></TD></TR>
<TR>
<TD class=listCell>BLZ</TD>
<TD bgColor=#ffffff><INPUT onblur=notempty() value={.blz} name={in.blz}></TD></TR>
<TR>
<TD class=listCell>Account No.</TD>
<TD bgColor=#ffffff><INPUT onblur=notempty() value={.kontonr} name={in.kontonr}></TD></TR>
<TR>
<TD class=listCell>Account owner</TD>
<TD bgColor=#ffffff><INPUT value={.kontoinh} name={in.kontoinh}></TD></TR></TABLE>
<!-- wbsif{/UserDaten} --><TABLE cellSpacing=1 cellPadding=4 width=603 border=0>
<!-- wbs{Liste Warenkorb Bestellung - Typ: Detail}
      -->
<!-- wbsif{Erste Zeile} -->

<TR>
<TD class=listHeading width=512 colSpan=4>&nbsp;Your cart contains the following items:</TD>
<TD class=listHeading width=130>&nbsp;</TD></TR>
<TR>
<TD class=listHeading width=50>&nbsp;</TD>
<TD class=listHeading vAlign=center width=260>Item</TD>
<TD class=listHeading vAlign=center align=center width=25>Qty</TD>
<TD class=listHeading vAlign=center align=right width=120>Price &euro;</TD>
<TD class=listHeading vAlign=center align=right width=130>Amount &euro;</TD></TR>
<!-- wbsif{/Erste Zeile} -->
<TR>
<TD class=listCell vAlign=center align=center width=50>
<!-- wbsif{ProduktDaten} feld="vorschaubild" alt="<font size=1>mehr Info's</font>" --><IMG src="{Vorschaubild}" border=0> 
<!-- wbsif{/ProduktDaten} --></TD>
<TD class=listCell width=260>{Bezeichnungkurz} {!wkvar}</TD>
<TD class=listCell align=center width=25>{!wkmenge}</TD>
<TD class=listCell align=right width=120>{!wkpr:EUR}&nbsp; </TD>
<TD class=listCell align=right width=130>{!wkprpos:EUR}&nbsp;</TD></TR>
<!-- wbsif{Letzte Zeile} -->
<TR>
<TD class=listHeading vAlign=bottom width=383 colSpan=3><INPUT onblur=agbchecked(this) type=checkbox value=ja name={!checkAGB}><FONT color=#000099>&nbsp;I have read and accepted the General Terms and Conditions of {sd.firma} (to read click "<A href="javascript:wopen('wbs5510.tag','Service/AGB','width=700,height=900,')">Service</A>").</FONT></TD>
<TD class=listHeading align=right width=369 colSpan=2>
<TABLE class=listHeading border=0>

<TR>
<TD class=listHeading align=left width=150><FONT color=#000099>Sub total</FONT></TD>
<TD class=listHeading align=right width=100>{!wknet:EUR}&nbsp;&euro;</TD></TR>
<TR>
<TD class=listHeading align=left width=150><FONT color=#000099>P &amp; P&nbsp;</FONT></TD>
<TD class=listHeading align=right width=100>{!wklcost:EUR} &euro;</TD></TR>
<TR>
<TD><FONT color=#000099>Voucher</FONT></TD>
<TD align=right>&nbsp;<FONT color=#0d9608> 
<!-- wbsif{UserDaten} feld="orderadd_Coupon" alt="0,00&nbsp;&euro;" -->{url:http://www.xxx.de/xxx/center/wbc_chk_coupon.php?fp_ud[orderadd_Coupon]={.orderadd_Coupon}} &euro;</FONT></TD></TR>
<!-- wbsif{/UserDaten} -->
<TR>
<TD class=listHeading align=left width=150><FONT color=#000099>16% VAT incl.<BR>&nbsp;&nbsp;7%&nbsp;VAT incl.</FONT></TD>
<TD class=listHeading align=right width=100>{!wkvat1:EUR}&nbsp;&euro;<BR>{!wkvat2:EUR}&nbsp;&euro;</TD></TR>
<TR>
<TD class=listHeading align=left width=150><FONT color=#000099>Total</FONT></TD>
<TD class=listHeading align=right width=100>
<P><FONT color=#cc0000>{!wktotal:EUR#coupon}&nbsp;&euro;</FONT></P></TD></TR>
<TR></TR></TABLE></TD></TR>
<TR>
<TD vAlign=bottom width=669 bgColor=white colSpan=5>
<!-- wbsif{UserDaten} feld="orderadd_Coupon" --><FONT size=1>Your gift voucher No. <FONT color=#0d9608 size=1>{.orderadd_Coupon}</FONT><FONT size=1>&nbsp;has reduced&nbsp;the total by<FONT color=#ff0000> </FONT><FONT color=#0d9608>&euro; {url:http://www.xxx.de/xxx/center/wbc_chk_coupon.php?fp_ud[orderadd_Coupon]={.orderadd_Coupon}}</FONT>. Your orders are delivered free of charg


<!-- wbsif{/UserDaten} -->


<!-- wbsif{/Letzte Zeile} -->
<!-- wbs{/Liste Warenkorb Bestellung - Typ: Detail} -->
<TABLE style="WIDTH: 603px; HEIGHT: 44px">
<TR><TD class=berMain align=center height=40>
After sending your order please wait a moment. Under certain circumstances it may take a few seconds before the order confirmation page appears. Please don't press the "Send order" button a second time for <STRONG>this will send a second order</STRONG>.
<BR><INPUT onclick=javascript:window.print() type=button value="Print order" name=drucken>&nbsp;
<INPUT type=submit value="Send order" name=absenden>



</TD></TR></TABLE></FORM></DIV>
	</BODY>
</HTML>
 
Mmmh...abgesehen davon, dass die Zeile
Code:
for (var j = 1; j < {!wktotal:EUR#coupon}.;length; j++;)
rein von der Syntax her nicht hinhaut, sehe ich da weiterhin keine Variable dieses Namens.

Schön, dass die Variable dem Shop bekannt ist....Javascript kann aber nicht hexen und sich nach gutdünken beliebige Variablen aus dem Finger saugen:) ....

Die Variable muss in einer für Javascript üblichen Art und Weise deklariert werden:
Code:
var variable='wert';
 
Zurück