redirect in javascript

Original geschrieben von fatalus
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.

? Warum: müsste diese Variable noch wo anders stehen?

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';

Wo muss das dann hingestellt werden? Was muss ich für "variable" und was für "wert" einsetzen?

Was ist an der Syntax falsch?
 
? Warum: müsste diese Variable noch wo anders stehen?
ne....das muss schon dahin....aber ein Variablenname besteht in Javscript aus Buchstaben, Ziffern und dem Unterstrich....

keine Rauten, Klammern, Doppelpunkte.....

Code:
for (var j = 1; j < variablenname.length; j++)
wäre von der Syntax her richtig.
Auch Semilkola sind nicht dazu gedacht, sie wahllos in Skripten zu verteilen.


Wo muss das dann hingestellt werden? Was muss ich für "variable" und was für "wert" einsetzen?
Das muss natürlich innerhalb der Seite innerhalb irgendeines <script>-Blockes stehen....und zwar bevor auf diese Variable zugegriffen werden soll.

Wie du die Variable nennst, ist egal...solange sie aus den oben erwähnten Zeichen besteht. Unter Angabe dieses Namens kannst du von Javascript-Seite aus zugreifen.

Was der Wert sein soll, musst du wissen...ist schliesslich deine Variable.

Also im Endeffekt so:

Code:
var variablenname=$shopVariablen-wert;

for (var j = 1; j < variablenname.length; j++)
...wobei du anstatt des fetten den Wert der Variablen im Dokument ausgeben musst...womit keine Ahnung...bisher hast du noch nicht erwähnt, mit welcher Sprache der Shop arbeitet.
 
hmm...


so schaut jetzt mein Quelltext aus:

Code:
<SCRIPT language=javascript>


	var GESAMT = {!wktotal:EUR#coupon};

for (var j = 1; j < GESAMT.length; j++)
	{
		if (GESAMT == "Total")
		{
		var k       = GESAMT.length;
		var AMOUNT      = GESAMT.substr(2,k);
		AMOUNT      = AMOUNT.replace(",","");
		}
		
	}
	
  	var ACCOUNTID   = "xxx-xxxx";
  	var CURRENCY    = "EUR";
 	var DESCRIPTION = "Gesamtbetrag";
	var PROFILE     = "Ihr Profil"
  	var NOTIFY      = "xxx@xxx.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>

Die Javascript-Konsole im Firefox sagt gibt folgenden Fehler aus:

Fehler: missing variable name
Quelldatei: http://www.xxx.de
Zeile: 29, Spalte: 17
Quelltext:
var GESAMT = 18,90;



Online schaut das ganze jetzt so aus:




Code:
<SCRIPT language=javascript>


	var GESAMT = 18,90;

for (var j = 1; j < GESAMT.length; j++)
	{
		if (GESAMT == "Total")
		{
		var k       = GESAMT.length;
		var AMOUNT      = GESAMT.substr(2,k);
		AMOUNT      = AMOUNT.replace(",","");
		}
		
	}
	
  	var ACCOUNTID   = "xxxxx-xxxxxx";
  	var CURRENCY    = "EUR";
 	var DESCRIPTION = "Gesamtbetrag";
	var PROFILE     = "Ihr Profil"
  	var NOTIFY      = "xxx@xxx.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>



Und das komische:

Es öffnet sich mit dem Klick "Send Order" zur Zeit gar kein neues Fenster. Zum Test habe ich dann aus dem "+url+" im Redirect-Aufruf einfach mal http://www.xxx.de geschrieben: es ging auch nichts.

Dann habe ich im Javascript nur noch die Zeile mit dem document.writeln stehen lassen und wieder statt "+url+" http://www.xxx.de geschrieben.
Dann hat sich ein Fenster mit hrrp://www.xxx.de geöffnet!

Komisch, oder?
 
Wie wärs damit:
Code:
var GESAMT = '18,90';
....

18,90 ist keine Zahl, sondern eine Zeichenkette... in Javascript wird bei Zahlen als Komma nur der Punkt akzeptiert.

Wenn du einer Variable eine Zeichenkette als Wert zuweisen willst, musst du diese Zeichenkette in Anführungszeichen setzen, da sonst eine Variable,Zahl oder der Rückgabewert einer Funktion erwartet wird(was in diesem Fall nicht gegeben ist)
 
Danke, das klingt logisch.


Jetzt kommt aber folgende Fehlermeldung:


Fehler: unterminated string literal
Quelldatei: http://www.xxx.de
Zeile: 49, Spalte: 38
Quelltext:
+ NAME + "&AUTOCLOSE=" + AUTOCLOSE + ";



Und die ganzen Variablen sind online immer noch nicht ausgefüllt!

Irgendwo steckt da der Fehlerteufel, aber wo?
 
Dann schau dir die Zeile doch an....am Ende beginnst du, den String zu erweitern, führst das aber nicht zu Ende....es fehlt am Ende ein den String beendendes Anführungszeichen(was die Fehlermeldung besagt).

Bei allem was Recht ist... ich möcht hier nicht den "HUMAN DEBUGGER" geben.


Abgesehen davon brauchst du nicht jedesmal erwähnen, dass es noch nicht funktioniert....wenn ein Fehler drinnen ist, dann funktioniert es halt nicht...auch nicht auszugsweise.
 

Neue Beiträge

Zurück