| 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: 16 let
|
|||
0