zinatnieks Posted January 10, 2008 Report Posted January 10, 2008 Problēma tāda, ka man ir nepieciešams javascripta mainīgo padot tālāk php lai tad var viņu tālāk apstrādāt. Problēma rodas tajā, ka Javascript ir klienta puses bet php servera puses programmēšanas valoda. Javascripts: <script LANGUAGE="JavaScript"> //////////////////// var myImg= new Array(14) <?foreach($gallery as $idx=>$image):?> myImg[<?=$idx?>]= <?echo "\"".$image['image']."\""?>; <?endforeach;?> /////////////////// </SCRIPT> PHP: <a id="galleryLink" href="java script:openPhoto('<?=$cfg["home_url"]?>/templates/thumb.php?id=<?=base64_encode($gallery[0]["image"])?>&res=3', <?=$width?>, <?=$height?>, myImg);"><img src="<?=$cfg["home_url"]?>/templates/thumb.php?id=<?=base64_encode($gallery[0]["image"])?>&res=5" id="gallery" alt="" border="0" /> Kā jau var redzēt tad pie openPhoto es mēģinu to javascript mainīgo myImg padot, bet nestrādā. Varbūt kādam ir kāds ierosinājums?
andrisp Posted January 10, 2008 Report Posted January 10, 2008 (edited) Ja neskaita, ka tu izmanto PHP, lai ģenerētu kodu, es neredzu, kur notiktu mēģinājums padot JS masīvu PHP. Es redzu, ka tiek izsaukta JS funkcija, kurai padots tiek myImg JS masīvs. Tam būtu jāstrādā (JS openPhoto funkcija dabūs myImg saturu), ja myImg ir globāls. Edited January 10, 2008 by andrisp
GedroX Posted January 10, 2008 Report Posted January 10, 2008 Padot myImg masīvu GET-ā: document.getElementById('galleryLink').href += '&myImg=' + myImg.toString();
andrisp Posted January 10, 2008 Report Posted January 10, 2008 ar toString() metodi tiks padotas tikai elementu vērtības, atmetot indexus.
GedroX Posted January 10, 2008 Report Posted January 10, 2008 Ar elementu kārtību nepietiek? ;) Javaskriptā kārtas numurs = indekss. Tikai derētu escape funkciju uz to masīvu vēl izpildīt. Savādāk nesmukumi var sanākt.
andrisp Posted January 10, 2008 Report Posted January 10, 2008 GedroX, pēc dotā JS izskatās, ka nepietiek gan :). Jebkurā gadijumā: http://www.google.com/search?hl=lv&q=j...cript+serialize
zinatnieks Posted January 10, 2008 Author Report Posted January 10, 2008 Padot myImg masīvu GET-ā: document.getElementById('galleryLink').href += '&myImg=' + myImg.toString(); Šis īsti neder, jo tad links tiek padots diezgan nejēdzīgi: java script:openPhoto('http://adrese.lv', '584', '768');myImg=pirmais_elements,otrais_elements,tresais_elemets Man ir nepieciešams, lai tas tiktu padots kā: java script:openPhoto('http://adrese.lv', '584', '768', 'myImg=pirmais_elements,otrais_elements,tresais_elemets');
GedroX Posted January 10, 2008 Report Posted January 10, 2008 Ja nu pats nevari saprast: <a id="galleryLink" href="java script:openPhoto('<?=$cfg["home_url"]?>/templates/thumb.php?id=<?=base64_encode($gallery[0]["image"])?>&res=3&{MY_IMG}', <?=$width?>, <?=$height?>, myImg);"><img src="<?=$cfg["home_url"]?>/templates/thumb.php?id=<?=base64_encode($gallery[0]["image"])?>&res=5" id="gallery" alt="" border="0" /> un document.getElementById('galleryLink').href = document.getElementById('galleryLink').href.replace('{MY_IMG}', 'myImg=' + myImg.toString()); Bet labāk funkcijā openPhoto to darīt.
GedroX Posted January 10, 2008 Report Posted January 10, 2008 GedroX, pēc dotā JS izskatās, ka nepietiek gan :). Jebkurā gadijumā: http://www.google.com/search?hl=lv&q=j...cript+serialize Ja visi indeksi būs pozitīvi integer, tad pietiek. Pārbaudi pats. Galvenais ir, lai array nekļūst par not array object.
andrisp Posted January 10, 2008 Report Posted January 10, 2008 Nu tad jā, bet pēc tā JS izskatās, ka izdrukātie galerijas bilžu ID ir ID no datubāzes. Un tie noteikti nebūs vienmēr secīgi no 1 uz augšu, ja ir vairākas galerijas. Un tā kā viņš ģenerējot to masīvu izmanto šos IDs, tad es pieņemu, ka kodā tie tiks izmantoti.
GedroX Posted January 10, 2008 Report Posted January 10, 2008 Nu tad jā, bet pēc tā JS izskatās, ka izdrukātie galerijas bilžu ID ir ID no datubāzes. Un tie noteikti nebūs vienmēr secīgi no 1 uz augšu, ja ir vairākas galerijas. Un tā kā viņš ģenerējot to masīvu izmanto šos IDs, tad es pieņemu, ka kodā tie tiks izmantoti. Vēlreiz saku -- pārbaudi pats. :) var a = []; a[10] = 'test'; alert(a.toString()); // būs rezultāts ",,,,,,,,,,test"
andrisp Posted January 10, 2008 Report Posted January 10, 2008 Vispār es GedroXam atbildēju nevis tev. Vispār#2 tu sākumā veidoji masīvu (var x = new Array()). Tagad tu veido objektu (var x = []);
v3rb0 Posted January 10, 2008 Report Posted January 10, 2008 (edited) new Array() vai [] nemaina būtību, abos gadījumos, ja būs viens elements ar index 500'000 firefoxis nokārsies ar visu firebugu, tāpēc id kā masīva indexu javascriptā nekad nevajag izmantot. Edited January 10, 2008 by v3rb0
bubu Posted January 10, 2008 Report Posted January 10, 2008 andrisp: Javascriptā sekojošas divas konstrukcijas ir ekvivalentas: var a = []; un var a = new Array(); Tāpat kā var a={}; ir ekvivalents ar var a=new Object(); [] vai {} ir šortkuts new Array vai new Object rakstīšanai.
andrisp Posted January 10, 2008 Report Posted January 10, 2008 (edited) hm, tik tiešām, sajaucos. Bet tam vispār bija maza sakara ar šo topiku. Edited January 10, 2008 by andrisp
Recommended Posts