Autor Zpráva
fotohemalacz
Profil
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
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
fotohemalacz
Profil
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
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
fotohemalacz
Profil
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
tak vypadá to že v tomto tvaru to funguje:
  	var polefotek = eval(<?php echo json_encode($pole); ?>);



díky
Chamurappi
Profil
Reaguji na fotohemalacza:
Vyhoď ten eval.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0