Jak uložit hodnotu <span class="..."> do proměnné – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak uložit hodnotu <span class="..."> do proměnné – PHP – Fórum – Programujte.comJak uložit hodnotu <span class="..."> do proměnné – PHP – Fórum – Programujte.com

 

Karl
~ Anonymní uživatel
13 příspěvků
3. 3. 2019   #1
-
0
-

Prosím o pomoc, jak v tpl souboru vložím hodnotu uloženou v <span class="neco"> do promenne $neco?

Děkuji

Nahlásit jako SPAM
IP: 37.9.199.–
gna
~ Anonymní uživatel
1849 příspěvků
3. 3. 2019   #2
-
0
-

Dělá se to přesně naopak. Nevytahuješ nic ze šablony, ale definuješ data, která jdou do šablony.

A šablonovacích sytému je spousta, podívej se do dokumentace toho tvého. Třeba ve Smarty (jeden z populárních, který používá příponu tpl) by to bylo bylo takhle:

.php:

$smarty->assign('promenna', 'hodnota');

.tpl:

<span class="{$promenna}">
Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
3981 příspěvků
4. 3. 2019   #3
-
0
-

Pokud se nespokojis s odpovedi, zkus uvest neco vice o tvem system, programu. A informace, co chces vlastne udelat a proc.

Priponu TPL pouziva asi 1000 programu. Ohledne webu mozna 100. Pri trose stesti se to da zuzit skutecne na nejaky renderovaci system, ale tech jsou stovky.

Otazkou je, zda potrebujes dostat promenou z php do sablony tpl (text). A nebo opacne. Opacne je to nesmysl. Sablona je plain text. Ledaze bys chtel dostat promenou ze stranky. To by se mohlo jednat o prenos pomoci js ajax nebo prenos pomoci formular, odkaz a nebo html/xml/text parser (php file_get_content + xml parser).

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:3838:5a25:f2e0...–
Karl
~ Anonymní uživatel
13 příspěvků
4. 3. 2019   #4
-
0
-

Děkuji za rady.
Jedna se o e-shop a php soubor s příponou tpl. Pokud napíšu <span class="ajax_block_products_total">, vypíše se mi na stránce hodnota zboží v košíku bez dopravného. A já bych chtěl, aby se na stránce odpočitavala částka pro dopravné zdarma (Nakupte ještě za x Kč a dopravu budete mít zdarma). Výpočet asi takto nějak stručně: $dopravazdarma=1000-"ajax_block_products_total"
Samozřejmě by to ještě bylo ošetřeno podmínkou, že pokud hodnota zboží překročí hranici dopravného zdarma, odpočet se nebude zobrazovat. 

Nahlásit jako SPAM
IP: 213.235.86.–
gna
~ Anonymní uživatel
1849 příspěvků
4. 3. 2019   #5
-
0
-

V tom případě ten class nejspíš indikuje, že se na ten span má napíchnout AJAX a doplnit do něj data dynamicky.

Takže někde v PHP máš kód, který ta data (částku) generuje. A ten si uprav jak potřebuješ.

Nahlásit jako SPAM
IP: 213.211.51.–
Kit+15
Guru
4. 3. 2019   #6
-
0
-

#4 Karl
Vytvoř si v PHP novou proměnnou s požadovaným obsahem a ze šablony se na ni odkazuj.

Logika v šabloně je fakt hnus.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Karl
~ Anonymní uživatel
13 příspěvků
5. 3. 2019   #7
-
0
-

A mohli byste mi prosím poradit, jak bych měl upravit tento kód, aby to fungovalo? Tzn. aby se z 1000 Kč odečetla hodnota zboží v košíku a zobrazila se chybějící částka do dopravného zdarma.... 

<span class="ajax_block_products_total">
{if $cart_qties > 0}
{convertPrice price=1000-$cart->getOrderTotal(false, Cart::ONLY_PRODUCTS)}
{/if}
</span>
 

Nahlásit jako SPAM
IP: 37.9.199.–
gna
~ Anonymní uživatel
1849 příspěvků
6. 3. 2019   #8
-
+1
-
Zajímavé
Kit +

Takže je to Smarty a PrestaShop 1.6.

Tak hlavně to nebudeš počítat v šabloně a se zadrátovanou tisícovkou.

Pak tam nebudeš mít class, kterým se ti to přesmahne celkovou částkou.

A nakonec to vypadá, že už tam pro to podpora je, takže nemusíš nic vymýšlet.

<span class="freeshipping{if $free_shipping == 0} unvisible{/if}">
	{l s='Do dopravneho zdarma zbyva' mod='blockcart'}
	<span class="ajax_cart_free_shipping">{$free_shipping}</span>
</span>
Nahlásit jako SPAM
IP: 213.211.51.–
Karl
~ Anonymní uživatel
13 příspěvků
6. 3. 2019   #9
-
0
-

Děkuji za radu. JJ, prestashop 1.6. Bohužel v ní ale nemůžu mít nastaveno stejnou částku dopravného zdarma pro všechny dopravce. Tzn. že freeshipping je 0. Pokud tam zadám tento kód (bez podmínky), stejně se nic nezobrazí (ani popisek):

<span class="freeshipping"> {l s='Do dopravneho zdarma zbyva' mod='blockcart'} <span class="ajax_cart_free_shipping">{$free_shipping}</span> </span>

Vím, že je to amaterské, ale nemám problém zadat hodnotu dopravného zdarma (1000) přímo do kódu. Pokud by se v budoucnu měnil, vím, kde všude to mám v kódu opravit:-) Potřeboval bych proto upravit tento kód, aby to fungovalo:


<span class="ajax_block_products_total">
{if $cart_qties > 0}
{convertPrice price=1000-$cart->getOrderTotal(false, Cart::ONLY_PRODUCTS)}
{/if}
</span>

Nahlásit jako SPAM
IP: 213.235.86.–
gna
~ Anonymní uživatel
1849 příspěvků
6. 3. 2019   #10
-
0
-

Jak nic nezobrazí? Tak to naformátuj a vlož tak, aby se to zobrazilo. Pak řeš proměnné.

Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
1849 příspěvků
6. 3. 2019   #11
-
0
-

Tady se nastavují proměnné. 

[prestashop_1.6.1.20_0/modules/blockcart/blockcart.php]

$total_free_shipping = 0;
if ($free_shipping = Tools::convertPrice(floatval(Configuration::get('PS_SHIPPING_FREE_PRICE')), $currency))
{
...

$this->smarty->assign(array(
	...
	'free_shipping' => $total_free_shipping
	...

Tady je HTML šablona.

[prestashop_1.6.1.20_0/themes/default-bootstrap/modules/blockcart/blockcart.tpl]

co chceš
...

Tady je JSON šablona pro AJAX.

[prestashop_1.6.1.20_0/themes/default-bootstrap/modules/blockcart/blockcart-json.tpl]


"freeShipping": {displayWtPrice|json_encode p=$free_shipping},
"freeShippingFloat": {$free_shipping|json_encode},
...

A tady se to dynamicky aktualizuje.

[prestashop_1.6.1.20_0/themes/default-bootstrap/js/modules/blockcart/ajax-cart.js]

if (parseFloat(jsonData.freeShippingFloat) > 0)
{
	$('.ajax_cart_free_shipping').html(jsonData.freeShipping);
	$('.freeshipping').fadeIn(0);
	...

To stačí na to, abys tam doplnil cokoliv. Ve tvém případě bude stačit upravit výpočet $total_free_shipping (samozřejmě podle nastavení a ne natvrdo) a doplnit to do šablony.

20 minut včetně večeře a pohádky s neteří.

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý