Autor | Zpráva | ||
---|---|---|---|
fotohemalacz Profil |
#1 · Zasláno: 30. 3. 2010, 14:32:48
Zdravím, jsem v tomto lama tak to bude opět trivialita v algoritmu nebo předání mezi javasript a php. Děkuji za případnou radu, už nevím co bych s tím..
viz: http://dip.fotohemala.cz/cr.php Definovaná funkce v php, testing vypíše správně v cr.php nad mapou jména fotografií jak má: //funkce výpisu libovolného atributu JEDNÉ fotky z pole fotek, chybí-li třetí argument, funce si pamatuje id fotky v poli a navyšuje je, zadá-li se i třetí argument 1, fce vrací id zpět na 1... function VypisAtribut ($pole,$atribut,$id=0) { static $idk = 1; $foto = new fotka; if ($id==0) { $foto = $pole[$idk]; echo $foto->$atribut; $idk++; } else { $idk = 1; $foto = $pole[$idk]; echo $foto->$atribut; $idk++; } } // testing fcí PripojDBS(); VytvorPoleFotekDBS('SELECT * FROM `fotky`'); VypisAtribut ($pole,"jmeno"); echo "<BR>"; VypisAtribut ($pole,"jmeno"); echo "<BR>"; VypisAtribut ($pole,"jmeno"); echo "<BR>"; VypisAtribut ($pole,"jmeno"); echo "<BR>"; VypisAtribut ($pole,"jmeno",1); echo "<BR>"; VypisAtribut ($pole,"jmeno"); echo "<BR>"; Použití funkce v javasriptu však zkušebně alertuje sice správný počet, ale pouze jméno jedné stejné fotografie: <body> <? include 'dbs.php'; PripojDBS(); VytvorPoleFotekDBS('SELECT * FROM `fotky`'); $fotekvpoli = count ($pole); ?> <div name="mapa" id="mapa"> <div name="map_canvas" id="map_canvas"> </div> <script language = "JavaScript" type = "text/javascript" > initialize(); var jmeno = null; var pocetfotek = "<? echo $fotekvpoli ?>"; //alert (pocetfotek); for (var i = 1; i <= pocetfotek; i++) { jmeno = "<? VypisAtribut ($pole,"jmeno");?>"; alert(jmeno); MapujFoto(); } </script> |
||
fajzen Profil |
#2 · Zasláno: 30. 3. 2010, 15:19:01
fotohemalacz:
PHP sa vykonáva prvé - na servery, Javascript sa vykonáva až druhý - v prehliadači... takže funkcia VypisAtribut sa vykoná iba raz, nie pocetkrat, ako si asi zamýšľal |
||
Časová prodleva: 4 dny
|
|||
fotohemalacz Profil |
#3 · Zasláno: 3. 4. 2010, 10:31:41
díky za info! Nemůžu stále přijít na to, jak za této situace načíst pole objektů (vysosnutých pomocí php z databáze) do javasriptu (ideálně také do pole objektů).
Nějaké řešení je zde , kde radí vypsat php proměnné do html (a pak je asi získávat pomocí GetElemntByName apod?), což se mi zdá krkolomné, když mám připraveny objekty a funkce pro práci s nimi. Je tedy nějaká možnost jak efektivně přiřadit objekt php objektu v js (nebo rovnou celá pole objektů) ??? Díky moc za případný tip. |
||
fajzen Profil |
#4 · Zasláno: 4. 4. 2010, 12:13:44
fotohemalacz:
mohol by si priradiť celé pole vytvorené v PHP do poľa v JS naraz pomocou formátu JSON, napr: <?php $pole = array('jedna', 'dva', 'tri'); ?> <script> var pole = eval("<?php echo json_encode($pole); ?>"); </script> bude to fungovať aj pri viacrozmerných poliach, objektoch či poli objektov |
||
Časová prodleva: 3 dny
|
|||
fotohemalacz Profil |
#5 · Zasláno: 7. 4. 2010, 11:36:20
fajzen:
To zní skvěle, žel i tvůj ukázkový příklad mi háže SyntaxError: "parse error" http://dl.dropbox.com/u/1348580/Picture%201.png |
||
fotohemalacz Profil |
#6 · Zasláno: 7. 4. 2010, 13:06:29
tak vypadá to že v tomto tvaru to funguje:
var polefotek = eval(<?php echo json_encode($pole); ?>); díky |
||
Chamurappi Profil |
#7 · Zasláno: 7. 4. 2010, 13:30:28
Reaguji na fotohemalacza:
Vyhoď ten eval .
|
||
Časová prodleva: 14 let
|
0