Předání hodnoty z jquery do proměnne

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
t0x1c
Člen | 151
+
0
-

Zdravím mam takový problem (další..) :D Mám košík a v něm se mi pomocí jquery vypočíta celková cena všech položek tuto cenu vypisuju pomoci jquery a potom bych si ji chtěl uložit do sessionu. Ulozeni do sessionu resim pomoci handlu pri kliku na tlacitko nebo odkaz pokračovat. Problem je v tom že si nevím rady jak do proměnne a nebo přímo do toho odkazu odkazujiciho na handle vložit tu celkovou cenu ktera je uložena v proměnne v jquery. Snad jsme to napsal tak že se to dá pochopit. Je tedy nějaka možnost jak můj problem vyřešit? Díky

Paradiso
Člen | 101
+
0
-

Ahoj,
S tou cenou opatrně. Jestli je to jen pro informace pro zákazníka tak ok, ale jinak by ti tam někdo mohl podstrčit nějakou nesmyslnou částku, takže s ní moc nepočítej.

s tím i souvisí session
Session je serverová proměnná. Takže se k ní, nebo do ní můžeš dostat přes ajax, ale přímo s js ne.

jinak do odkazu jí vložíš jednoduše, např.:

<a href="odkaz" id="idodkazu"></a>

var link = $("#idodkazu").attr("href");
$("#idodkazu").attr("href") = link.'idsession';

možná to jde i elegantněji, ale to se chce kouknout do dokumentace jquery

Editoval Paradiso (15. 11. 2012 19:06)

Droid
Člen | 92
+
0
-

$.get({link handle!}+"&promenna="+hodnota);​​​​​

Editoval Droid (15. 11. 2012 19:34)

Jirda
Člen | 103
+
0
-
<script>
$.get({link cena!}, { suma: 12345 } );
</script>

Pro handleCena s argumentem suma.

llook
Člen | 407
+
0
-

Já to dělám takhle: $.get({link handle!}, { "promenna": hodnota };

Pokud používáš nette.ajax.js, tak asi bude ještě lepší nějak to navěsit na jeho události (asi before nebo start).

t0x1c
Člen | 151
+
0
-

llook napsal(a):

Já to dělám takhle: $.get({link handle!}, { "promenna": hodnota };

Pokud používáš nette.ajax.js, tak asi bude ještě lepší nějak to navěsit na jeho události (asi before nebo start).

Toto jse pravě zkoušel no a nefungovalo mi to nette.ajax.js používam asi proto no. Zkusim teda prvni možnost a kdyžtak uvidím díky za odpovědi :)

Editoval t0x1c (15. 11. 2012 19:37)

Droid
Člen | 92
+
0
-

To asi nefunguje kvůli tomu, že do latte cpeš javascript proměnnou, nebo se pletu? Zkus moje řešení.

t0x1c
Člen | 151
+
0
-

Tak nevím jestli to dělám blbě ale udělal jsem tedy droidové řešení i řešení ostatních a nejde. Podle droidoveho řešení jsem udělal do JS

$('#pokracovat').click(function(){
       $.get({link dalsi_krok!}+"&cena_celkem="+pomocna_cena_celkem);​​​​​
   });
<a href="#" id="pokracovat" ><p>Pokračovat</p></a>

Mám to blbě?

Editoval t0x1c (15. 11. 2012 23:10)

Droid
Člen | 92
+
0
-

Pozor na jmena.
JS:

$('#pokracovat').live("click", function(){
       $.get({link dalsiKrok!}+"&cena="+pomocna_cena_celkem);​​​​​
   });

A handle:

public function handleDalsiKrok($cena) {
...
}
llook
Člen | 407
+
0
-

Já bych spíš tipoval, že to nemáš obalený $(function () { }, takže se ta událost na ten odkaz nenavěsí. Koukni v developer toolbaru, jestli ti to odesílá nějaký ajax.

t0x1c
Člen | 151
+
0
-

No ja tam mame cely takovy zmateny jquery na vypocet celkove ceny atd.. a kdyz tam hodim tenhle kod tak mi to zase prestane fungovat :D Jsem se to jquery teprv učil a nějak se mi to povedlo a jsem rad že mi to jde :D

t0x1c
Člen | 151
+
0
-

Už jsem zkusil vše smazat i ostatni js i nette ajax a furt nic :( nejake napady? Mám to mít i v

$(document).ready(function() {

?

Editoval t0x1c (16. 11. 2012 17:59)

studna
Člen | 181
+
0
-

Tohle je spíš věc jQuery/JS. Ale..

$(function() {
	$('#pokracovat').live("click", function(){
		var pomocna_cena_celkem = 0;

		// tady budeš mít počítání ceny, kde zjistíš hodnotu pomocna_cena_celkem

       		$.get({link dalsiKrok!}+"&cena="+pomocna_cena_celkem);​​​​​
		// melo by ti to poslat pozadavek na url ..&do=dalsiKrok&cena=1234
   	});
}

Jinak mi to přijde trochu zbytečné, možná nebezpečné – že počítáš sumu položek na straně klienta a následně ji pošleš zpět na server. Není jednodušší to spočítat na straně serveru a pak to jednoduše naservírovat zákazníkovi?

ViPEr*CZ*
Člen | 817
+
0
-

Jak tu někdo psal… na cenu bych to rozhodně nepoužíval.
Nepoužívejte live, ale novější on:

$(function () {
   $('#pokracovat').on("click", function(e){
	$.get({link dalsiKrok!}+"&cena="+pomocna_cena_celkem);​​​​​
	e.preventDefault();
   });
}

<a href="#" id="pokracovat" ><p>Pokračovat</p></a>

a hlavně to bude chtít ještě jednou ten manuál. ;-)

t0x1c
Člen | 151
+
0
-

A co by jsi radil na cenu? Uložit do db? Nebo mysliš vubec nepoužívat jquery na cenu?

Editoval t0x1c (16. 11. 2012 19:33)

ViPEr*CZ*
Člen | 817
+
0
-

t0×1c napsal(a):

A co by jsi radil na cenu? Uložit do db? Nebo mysliš vubec nepoužívat jquery na cenu?

No celková cena by se měla vypočítat podle DB (podle cen zboží… nevím kde jsou v tomto případě uložený) a nejspíš by se měla i uložit, protože zboží se může přecenit v době vyřizování objednávky a pak by to mohlo dělat bordel.

t0x1c
Člen | 151
+
0
-

Jo ale zboží nemá stalou cenu jedná se o gamehosting. U položek se ještě následně vybírá počet slotů a doba pronájmu. Ja tam mám pravě jquery že to počítá v tom košíku hned a pak jsem chtěl použít tu hodnotu. Jsem v tomhle tom nováček takže jsem použil nejjednodušší řešení jaké mě napadlo.