zinatnieks Posted January 10, 2008 Report Share 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? Link to comment Share on other sites More sharing options...
andrisp Posted January 10, 2008 Report Share 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 Link to comment Share on other sites More sharing options...
GedroX Posted January 10, 2008 Report Share Posted January 10, 2008 Padot myImg masīvu GET-ā: document.getElementById('galleryLink').href += '&myImg=' + myImg.toString(); Link to comment Share on other sites More sharing options...
andrisp Posted January 10, 2008 Report Share Posted January 10, 2008 ar toString() metodi tiks padotas tikai elementu vērtības, atmetot indexus. Link to comment Share on other sites More sharing options...
GedroX Posted January 10, 2008 Report Share 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. Link to comment Share on other sites More sharing options...
andrisp Posted January 10, 2008 Report Share 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 Link to comment Share on other sites More sharing options...
zinatnieks Posted January 10, 2008 Author Report Share 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'); Link to comment Share on other sites More sharing options...
GedroX Posted January 10, 2008 Report Share 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. Link to comment Share on other sites More sharing options...
GedroX Posted January 10, 2008 Report Share 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. Link to comment Share on other sites More sharing options...
andrisp Posted January 10, 2008 Report Share 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. Link to comment Share on other sites More sharing options...
GedroX Posted January 10, 2008 Report Share 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" Link to comment Share on other sites More sharing options...
andrisp Posted January 10, 2008 Report Share 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 = []); Link to comment Share on other sites More sharing options...
v3rb0 Posted January 10, 2008 Report Share 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 Link to comment Share on other sites More sharing options...
bubu Posted January 10, 2008 Report Share 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. Link to comment Share on other sites More sharing options...
andrisp Posted January 10, 2008 Report Share 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 Link to comment Share on other sites More sharing options...
Recommended Posts