Avatar billede bimmer123 Nybegynder
16. november 2007 - 14:10 Der er 25 kommentarer og
1 løsning

Indsæt variabel i textarea

Jeg bruger Google Analytics på min webshop, hvor jeg har nedenstående funktion som registrere værdien af det enkelte salg.

<form style="display:none;" name="utmform">
<textarea id="utmtrans">UTM:T|ordreid|affiliation|
total|tax|shipping|city|state|country</textarea>
</form>
<script type="text/javascript">
__utmSetTrans();
</script>

Mit problem består imidlertid i at jeg har en variabel som henter total beløbet i format som f.eks. 1.455,00 men Googles script regner et . som decimal devider. Derfor fremstår oventående beløb som en ordre på DKK 1,45. Jeg har ikke kontrol over at ændre disse variabler på server siden, så kan det ikke lade sig gøre at lave et javascript som formatere værdien ved at fjerne . som tusinde deler og erstatter , med et . som decimal deler, så værdien f.eks. blev til 1455.00 og indsætter denne i mit textarea på |total| ???
Avatar billede montago Praktikant
16. november 2007 - 15:38 #1
script:

input: 1.455,00

var x = document.getElementById("utmtrans").value

x = x.replace(/(\.)/,"").replace(/(,)/,".");

herefter er x = 1455.00

//f.eks:
document.getElementById("utmtrans").value = x
Avatar billede montago Praktikant
16. november 2007 - 15:39 #2
spørgsmålet er jo om det skal køres inden submit, eller hvad ??

<form onsubmit="this.utmtrans.replace(/(\.)/,"").replace(/(,)/,".");">

så sker det lige inden submit... hvis ellers textarea kun indeholder et tal...
Avatar billede montago Praktikant
16. november 2007 - 15:41 #3
fuk... der mangler et g efter regex...

replace(//g,"") <-- global match
Avatar billede bimmer123 Nybegynder
16. november 2007 - 17:12 #4
hej montago,

formen bliver jo aldrig sendt ved hjælp af en submit button, den sendes når funktionen utmSetTrans loades. Jeg har også en dynasmisk variabel jeg kan sætte ind, med %%TotalValue%% så hvis formatet af inholdet i variablen var rigtig ville min kode se sådan ud:

<form style="display:none;" name="utmform">
<textarea id="utmtrans">
UTM:T|%%OrdreId%%|affiliation|%%TotalValue%%|tax|shipping|city|state|country
</textarea>
</form>
<script type="text/javascript">
__utmSetTrans();
</script>

De andre værdier har jeg ikke brug for og derfor loader jeg ingen variabler ind, f.eks. country osv. men mit spørgsmål går på om jeg ved hjælp af javascript kan få det endelige output til at se som f.eks.:
Avatar billede bimmer123 Nybegynder
16. november 2007 - 17:13 #5
<form style="display:none;" name="utmform">
<textarea id="utmtrans">
UTM:T|1002|affiliation|1455.00|tax|shipping|city|state|country
</textarea>
</form>
<script type="text/javascript">
__utmSetTrans();
</script>

Husk også at hvis et køb er under 1000 kr. vil indholdet af %%TotalValue%% måske være 456,00 hvor der altså ikke er et . med i variablen og dette skal javascriptet jo så også tage højde for
Avatar billede montago Praktikant
18. november 2007 - 11:25 #6
jeg fatter ikke helt hvor data kommer fra og går til...

redigere du dit textarea selv ?...

er det meningen at du ser dit textarea inden du sender det, via en js funktion ?


det er super nemt at rette værdien... men jeg forstår ikke helt hvornår det skal ske...
Avatar billede bimmer123 Nybegynder
18. november 2007 - 13:15 #7
Jeg har en kvittering/ordrebekræftelse som en bruger ser som det sidste når de har lagt en ordre i en webshop.

Der genereres en oversigt over ordren som viser brugeren, ordre id, hvad du har købt, total pris osv.

Derudover bruger jeg så et trackingscript fra Google Analytics, hvor sporingskoden fungerer således at man indsætter alle de værdier man vil spore i skjult textarea og sender dette til google analytics ved hjælp af en funktion der hedder utmSetTrans()

I mit tekstarea skal jeg altså skrive en tekst linje i formatet:
UTM:T|ordreid|affiliation|total|tax|shipping|city|state|country

Jeg har alle de informationer jeg skal bruge fra nogle server side variabler, men mit problem ligger imidlertid i at jeg ikke har adgang til at formatere min variabler på server siden, ellers kunne jeg jo blot have gjort dette, og ved hjælp af asp sat værdierne ind således:

UTM:T|<%=varOrdreid%>|<%=varAffiliation%>|<%=varTotal%>|<%=varTax%>|<%=varShipping%>|<%=varCity%>|<%=varState%>|<%=varCountry%>

Det kunne f.eks. give et output i brugerens html kode der ser sådan ud:

UTM:T|1002|eksperten|1.455,50|291,00|20,00|Copenhagen|DK|Denmark

Feltet er jo skjult for brugeren, det er bare den måde google analytics fungerer på at man indsætter det i et skjult textarea. Dette textarea skal jo indeholde tekst og derfor går mit spørgsmål på om man ved hjælp af javascript kan f.eks. kan tage min serverside variabel varTotal, formatere denne til det korrekte format som jeg har beskrevet tidligere og så indskyde det i det skjulte textarea på den rigtige plads, outputtet bliver således:

UTM:T|1002|eksperten|1455.50|291.00|20.00|Copenhagen|DK|Denmark

Jeg håber min forklaring giver mening...
Avatar billede roenving Novice
19. november 2007 - 08:15 #8
<script type="text/javascript">
window.onload = function(){
  var utm = document.getElementById("utmtrans");
  utm.value = utm.value.replace(/\./g,"").replace(/,/,".");
}
</script>
Avatar billede montago Praktikant
19. november 2007 - 12:20 #9
jomen så er mit første script jo det du skal bruge...

roenving's løsning køre efter siden har loadet... og gør det samme som min

nu det op til dig at intergrere løsningen
Avatar billede bimmer123 Nybegynder
19. november 2007 - 12:59 #10
Nu har jeg prøvet at sætte det ind sådan her, men det virker ikke, kan i hjælpe lidt på vej, jeg er ikke så skarp til javascript???

<form style="display:none;" name="utmform">
<textarea id="utmtrans">
UTM:T|%%OrderID%%|affiliation|%%SubTotalInclVATUS%%|vat|shipping|city|state|country</textarea>
</form>
<script type="text/javascript">
window.onload = function(){
  var utm = document.getElementById("utmtrans");
  utm.value = utm.value.replace(/\./g,"").replace(/,/,".");
}
</script>
<script type="text/javascript">
__utmSetTrans();
</script>

Outputtet i HTML'en bliver stadig bare:

<textarea id="utmtrans">
UTM:T|15|affiliation|1.931,50|vat|shipping|city|state|country</textarea>
</form>
<script type="text/javascript">
window.onload = function(){
  var utm = document.getElementById("utmtrans");
  utm.value = utm.value.replace(/\./g,"").replace(/,/,".");
}
</script>
<script type="text/javascript">
__utmSetTrans();
</script>
Avatar billede roenving Novice
19. november 2007 - 13:02 #11
Prøv at se værdien i feltet ved at fjerne display:none midlertidigt fra formen !-)

-- og så må det nok være visibility:hidden i stedet for, evt. suppleret med positionering e.l.
Avatar billede montago Praktikant
19. november 2007 - 13:11 #12
HTML'en er den samme altid... Javascript's ændringer vises ikke...
Avatar billede bimmer123 Nybegynder
19. november 2007 - 13:21 #13
Jamen hvis indholdet i feltet forbliver det samme så bliver ændringen jo ikke sendt til mit tracking systemet, funktionen utmSetTrans() sender jo indholdet af mit textarea, kan jeg ikke få den til at ændre indholdet i mit textarea...?
Avatar billede roenving Novice
19. november 2007 - 13:27 #14
Prøv at teste ved at vise det textarea ...
Avatar billede montago Praktikant
19. november 2007 - 14:31 #15
prøv med følgende:

<form style="" name="utmform">
  <textarea id="utmtrans">
UTM:T|%%OrderID%%|affiliation|%%SubTotalInclVATUS%%|vat|shipping|city|state|country</textarea>
</form>

<script type="text/javascript">
window.onload = function(){
  var utm = document.getElementById("utmtrans");
  utm.value = utm.value.replace(/\./g,"").replace(/,/,".");
}
</script>

<script type="text/javascript">
__utmSetTrans();
</script>
Avatar billede montago Praktikant
19. november 2007 - 14:31 #16
evt uden at kalde

__utmSetTrans();


<form style="" name="utmform">
  <textarea id="utmtrans">
UTM:T|%%OrderID%%|affiliation|%%SubTotalInclVATUS%%|vat|shipping|city|state|country</textarea>
</form>

<script type="text/javascript">
window.onload = function(){
  var utm = document.getElementById("utmtrans");
  utm.value = utm.value.replace(/\./g,"").replace(/,/,".");
}
</script>

<script type="text/javascript">
//__utmSetTrans();
</script>
Avatar billede bimmer123 Nybegynder
19. november 2007 - 14:54 #17
OK, outputtet i det synlige textarea bliver:

UTM:T|17|affiliation|1931.50|vat|shipping|city|state|country

Så det virker altså som det skal i det synlige felt, men jeg tvivler på at det virker når jeg sender indholdet afsted til google analytics via __utmSetTrans() jeg tester om jeg kan se noget i statistikken, det tager dog et par timer inden det er opdateret, men er der ingen måde jeg kan gøre det på så det også vil ædnre sig i kilde koden?
Avatar billede roenving Novice
19. november 2007 - 15:01 #18
Så skal du ændre det før det bliver indsat i koden !)
Avatar billede bimmer123 Nybegynder
19. november 2007 - 15:05 #19
hvordan kan jeg gøre det?

Altså sådan så hvis jeg trykker vis kilde i min browser så vil det stå som:

UTM:T|17|affiliation|1931.50|vat|shipping|city|state|country
Avatar billede montago Praktikant
19. november 2007 - 15:11 #20
det kan du ikke...

Kildekoden er statisk, og ændres kun når serveren sender den til dig

derimod kan du ændre i den fortolkede kode med Javascript...

installer Firfox med Firebug, så kan du komme til at se den fortolkede kode i stedet.
Avatar billede roenving Novice
19. november 2007 - 15:24 #21
-- eller Microsoft Internet Explorer Developer Toolbar ...
Avatar billede montago Praktikant
19. november 2007 - 15:25 #22
kan MS-IE D-T vise ændringer på samme måde som FireBug ??

har aldrig hørt om den toolbar...
Avatar billede roenving Novice
19. november 2007 - 15:30 #23
-- og jég kender ikke FireBug, jeg klarer mig ganske udmærket med DOM Inspector, som jo er indbygget, Developer Toolbaren har noget lignende indbygget !-)
Avatar billede montago Praktikant
19. november 2007 - 15:50 #24
oki :)

du burde prøve Firefox med FireBug + IE-Tab... så kan man skifte imellem IE og FF rendering med 1 museklik, og debug Javascript så man bliver våd i trussen :D

Firebug har en aktiv konsol (ala java script:kode(); i adressebaren) som kan nogle tricks, fuld DOM opløsning og jeg skal komme efter dig med features...

men jeg tror jeg vil kigge på Dev-toolbar og se om det er noget der kan bruges...
Avatar billede bimmer123 Nybegynder
07. december 2007 - 23:37 #25
det virker ikke... det er vel fordi at indholdet bare ændres i brugerens browser, det er jo stadig det samme værdier og format der sendes til google
Avatar billede bimmer123 Nybegynder
01. april 2008 - 11:16 #26
hej roenvig og montago,

jeg fik desværre aldrig en løsning på problemet, men i mellemtiden har min udbyder udgivet et modul som integrere Analtics i deres løsning, så jeg fik det på plads alligevel til sidst.

Jeg vil ihvertfald sige tak for jeres tid og fordi i gad forsøge.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester