Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Úprava funkcie

Petiman
verified
rating uzivatele
15. 6. 2022 17:38:24
Zdravím vospolok, v GTM mám script na spojenie dvoch variable
function() {
 return ({{dlv variable_1}}) + '_' + ({{dlv variable_2}});
}
 
že ak napríkad : hodnota dlv variable_1 = 10 a hodnota dlv variable_2 = 15 výsledná hodnota  je "10_15"
vedel by niekto doplniť kód aby ak hodnota  dlv variable_2 neexistuje, aby dalo výsledok len "10" (hodnotu z dlv variable_1 )
nakoľko teraz mi to hádže "10_undefined""    ... keďže v tú chvíľu je dlv variable_2 undefined
vďaka
15. 6. 2022 17:38:24
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503540
grafika-x
verified
rating uzivatele
(1 hodnocení)
15. 6. 2022 19:09:13
Dlouho jsem v Javascriptu nedělal, ale nějak takto?
x = ({{dlv variable_1}});
y = ({{dlv variable_2}});
if (y = "" | "undefined") (
return x;
)
else (
return x + '_' + y;
);
15. 6. 2022 19:09:13
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503539
Petiman
verified
rating uzivatele
15. 6. 2022 20:44:01
Napsal grafika-x;1646795
Dlouho jsem v Javascriptu nedělal, ale nějak takto?
x = ({{dlv variable_1}});
y = ({{dlv variable_2}});
if (y = "" | "undefined") (
return x;
)
else (
return x + '_' + y;
);
ďakujem za rýchlu odpoveď.
ako to dám takto:
var x = ({{dlv variable_1}});
var y = ({{dlv variable_2}});
if (y = "" | "undefined") (
    return x;
)
else (
    return x + '_' + y;
    );
Pri kompilácií to hádže:  Vyskytla sa chyba na riadku 1, znak 4: Parse error. primary expression expected.
Som v tomto úplne mimo o javascripte viem "0,nič" . Robím to systémov pokus-omyl-googlenie-omyl...
15. 6. 2022 20:44:01
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503538
grafika-x
verified
rating uzivatele
(1 hodnocení)
15. 6. 2022 21:01:05
Napsal Petiman;1646802
ďakujem za rýchlu odpoveď.
ako to dám takto:
var x = ({{dlv variable_1}});
var y = ({{dlv variable_2}});
if (y = "" | "undefined") (
    return x;
)
else (
    return x + '_' + y;
    );
Pri kompilácií to hádže:  Vyskytla sa chyba na riadku 1, znak 4: Parse error. primary expression expected.
Som v tomto úplne mimo o javascripte viem "0,nič" . Robím to systémov pokus-omyl-googlenie-omyl...
musí to být obalené tou funkcí
function() {
  tady dáš to co jsem napsal
}
kde:
y =""  - prázdný řetězec
|          - OR
"undefined"  - to je jasné, ale tady může být problém, pokud ta proměnná má definované jen číslo
ještě mě napadlo dát
var x = ({{dlv variable_1}});
var y = ({{dlv variable_2}});
jako globální,
páč pokud je to ve funkci, tak to nemusí brát ty data, musí tam být celá nadřazená cesta,
takže si to sahá na neznámá data, možná kdyby si dodal zbytek kodu, ale dál nevím
dál ti nepomůžu, jsem stejný šťouchal jako ty :-)
---------- Příspěvek doplněn 15.06.2022 v 20:06 ----------
function() {
var x = ({{dlv variable_1}});
var y = ({{dlv variable_2}});
if (y =  "undefined") (
    return ({{dlv variable_1}});
)
else (
   
 return ({{dlv variable_1}}) + '_' + ({{dlv variable_2}});
);
}
15. 6. 2022 21:01:05
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503537
Petiman
verified
rating uzivatele
15. 6. 2022 21:33:04
Napsal grafika-x;1646804
musí to být obalené tou funkcí
function() {
  tady dáš to co jsem napsal
}
kde:
y =""  - prázdný řetězec
|          - OR
"undefined"  - to je jasné, ale tady může být problém, pokud ta proměnná má definované jen číslo
ještě mě napadlo dát
var x = ({{dlv variable_1}});
var y = ({{dlv variable_2}});
jako globální,
páč pokud je to ve funkci, tak to nemusí brát ty data, musí tam být celá nadřazená cesta,
takže si to sahá na neznámá data, možná kdyby si dodal zbytek kodu, ale dál nevím
dál ti nepomůžu, jsem stejný šťouchal jako ty :-)
---------- Příspěvek doplněn 15.06.2022 v 20:06 ----------
function() {
var x = ({{dlv variable_1}});
var y = ({{dlv variable_2}});
if (y =  "undefined") (
    return ({{dlv variable_1}});
)
else (
   
 return ({{dlv variable_1}}) + '_' + ({{dlv variable_2}});
);
}
Keď je to takto:
function() {
var x = ({{dlv variable_1}});
var y = ({{dlv variable_2}});
if (y =  "undefined") (
    return ({{dlv variable_1}});
)
else (
 
return ({{dlv variable_1}}) + '_' + ({{dlv variable_2}});
);
}
tak: Vyskytla sa chyba na riadku 10, znak 17: Parse error. primary expression expected
ono to je celý kód lebo tie variable či jedno alebo druhé dáva vyberá hodnoty z datalayeru napríklad:
{{dlv variable_1}}    "10"  ( type je string )  tu hodnota vždy nejaká 
{{dlv variable_2}}     "15"  ( type je tiež string ) alebo undefined , pokiaľ nie je údaj.
a potrebujem z toho dostať "10_15" (type string) alebo len "10"
čísla sú samozrejme vždy iné, preto ich vyťahujem práve tou premenou. 
prvé je ID základného produktu druhé je ID jeho varianty, preto ak je to produkt, ktorý má aj variant napríklad veľkosť celý kód produktu je hlavné-ID_ID-varianty
ak je to len produkt bez variantu jeho IDje len hlavné-ID
15. 6. 2022 21:33:04
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503536
grafika-x
verified
rating uzivatele
(1 hodnocení)
15. 6. 2022 21:41:30
Napsal Petiman;1646811
Keď je to takto:
function() {
var x = ({{dlv variable_1}});
var y = ({{dlv variable_2}});
if (y =  "undefined") (
    return ({{dlv variable_1}});
)
else (
 
return ({{dlv variable_1}}) + '_' + ({{dlv variable_2}});
);
}
tak: Vyskytla sa chyba na riadku 10, znak 17: Parse error. primary expression expected
ono to je celý kód lebo tie variable či jedno alebo druhé dáva vyberá hodnoty z datalayeru napríklad:
{{dlv variable_1}}    "10"  ( type je string )  tu hodnota vždy nejaká 
{{dlv variable_2}}     "15"  ( type je tiež string ) alebo undefined , pokiaľ nie je údaj.
a potrebujem z toho dostať "10_15" (type string) alebo len "10"
čísla sú samozrejme vždy iné, preto ich vyťahujem práve tou premenou. 
prvé je ID základného produktu druhé je ID jeho varianty, preto ak je to produkt, ktorý má aj variant napríklad veľkosť celý kód produktu je hlavné-ID_ID-varianty
ak je to len produkt bez variantu jeho IDje len hlavné-ID
nebere to, ten první return, hele tady jsem v koncích - napiš požadavek na nějaké forum o javascriptu
nejlépe
stackoverflow" rel='nofollow' title="https://stackoverflow">https://stackoverflow.com
15. 6. 2022 21:41:30
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503535
Petiman
verified
rating uzivatele
15. 6. 2022 21:54:38
Napsal grafika-x;1646813
nebere to, ten první return, hele tady jsem v koncích - napiš požadavek na nějaké forum o javascriptu
nejlépe
https://stackoverflow.com
I tak ďakujem za snahu.
15. 6. 2022 21:54:38
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503534
Napsal Petiman;1646789
Zdravím vospolok, v GTM mám script na spojenie dvoch variable
function() {
 return ({{dlv variable_1}}) + '_' + ({{dlv variable_2}});
}
 
že ak napríkad : hodnota dlv variable_1 = 10 a hodnota dlv variable_2 = 15 výsledná hodnota  je "10_15"
vedel by niekto doplniť kód aby ak hodnota  dlv variable_2 neexistuje, aby dalo výsledok len "10" (hodnotu z dlv variable_1 )
nakoľko teraz mi to hádže "10_undefined""    ... keďže v tú chvíľu je dlv variable_2 undefined
vďaka
function() {
if (typeof dlv_var_1 == undefined)
    return  toString(  dlv_var_2 );
if (typeof dlv_var_2 == undefined)
    return toString(   dlv_var_1 );
 return toString( ({{dlv_var_1}}) + '_' + ({{dlv_var_2}}) );
);
takhle nějak cca + přejmenuj proměnný, doplň si ty závorky, jestli tam maj nějakou funkci.
i
16. 6. 2022 10:32:57
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503533
Petiman
verified
rating uzivatele
16. 6. 2022 11:41:05
Napsal elem;1646832
function() {
if (typeof dlv_var_1 == undefined)
    return  toString(  dlv_var_2 );
if (typeof dlv_var_2 == undefined)
    return toString(   dlv_var_1 );
 return toString( ({{dlv_var_1}}) + '_' + ({{dlv_var_2}}) );
);
takhle nějak cca + přejmenuj proměnný, doplň si ty závorky, jestli tam maj nějakou funkci.
i
ďakujem aj v tomto prípade to však vracia hodnotu napríklad "10_undefined"
skúsím to celé zhrnúť:
Existuje datalayer, kde ak má hlavný produkt aj variantu (nejakú veľkosť) vyzerá takto:
shop: { 
  product: {
      id: "10",
      variant:
   }
kde: shop.product.id je premenenná {{dvl-product-id}}  ktorá následne vracia hodnotu "10"    ...(type string)
kde: shop.product.variant.id  je premenenná {{dvl-variant-id}} ktrorá následne vracia hodnotu "15"  ...(type string)
ak si vytvorím novú premennú napríklad {{dvl-id-id}} s vlastným javascript
kde je funkcia....    {{dvl-product-id}} +"_"+ {{dvl-variant-id}}  dostanem potrebný celý kód daného produktu "10_15"  ...(type string)
avšak keď daný produkt variant nemá datalayer vyzerá takto:
shop: { 
    product: {
      id: "10",
      variant: []
     }
vtedy premenenná {{dvl-product-id}}  následne vracia hodnotu "10"    ...(type string)
vtedy premenenná {{dvl-variant-id}} vracia hodnotu undefined  ...(type undefined)
a následne v premennej {{dvl-id-id}}  ( aj keď je funkcia zapísaná ako si poslal ) dostávam "10_undefined"  a tu potrebujem  "10"
16. 6. 2022 11:41:05
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503532
jo mám tam zbrklou chybu, pardon, undefined musí být v uvozovkách, takže např if (typeof dlv_var_1 =='undefined')
16. 6. 2022 12:05:46
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503531
grafika-x
verified
rating uzivatele
(1 hodnocení)
16. 6. 2022 12:18:32
ještě se přidám, jestli to děláš naslepo dej si před return
kde to p definuj proměnnou z funkce a uvidíš co vlastně načítáš a podle toho co to vyhodí můžeš udělat pro return podmínku.
16. 6. 2022 12:18:32
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503530
Petiman
verified
rating uzivatele
16. 6. 2022 12:23:56
Napsal elem;1646837
jo mám tam zbrklou chybu, pardon, undefined musí být v uvozovkách, takže např if (typeof dlv_var_1 =='undefined')
Bingo, úvodzovky zafungovali , paráda teraz to hádže dáva hodnotu ako treba. Veľké vďaka.
16. 6. 2022 12:23:56
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503529
Napsal Petiman;1646841
Bingo, úvodzovky zafungovali , paráda teraz to hádže dáva hodnotu ako treba. Veľké vďaka.
v pohodě, ať se daří
16. 6. 2022 12:59:25
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503528
Petiman
verified
rating uzivatele
16. 6. 2022 13:53:53
Napsal elem;1646844
v pohodě, ať se daří
Ešte ak môžem dotaz
z premennej {{dlv - cart}}  ...(type array)
   
som z tejto premennej touto funkciou:
      function() {
        var products = {{dlv - cart}};
        return products.map(function(prod) { return prod.id; });
      }
dostal hodnoty id:     ...(type array)
avšak tým istým spôsobom neviem dostať von ten variant.id
aby som ich spojením následne mohol získať konečné:
Alebo je nejaké elegantnejšie riešenie ako z tejto premennej {{dlv - cart}} 
dostať toto:      rýchlejšie?
pardon, možno primitívne otázky, ale som len v začiatkoch...
16. 6. 2022 13:53:53
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503527
vlkosin
verified
rating uzivatele
(6 hodnocení)
18. 6. 2022 14:05:58
např.:
18. 6. 2022 14:05:58
https://webtrh.cz/diskuse/uprava-funkcie/#reply1503526
Pro odpověď se přihlašte.
Přihlásit