» »

PHP in JS problem :(

PHP in JS problem :(

zalla ::

Mi lahko kdo prosim pomaga s spodnjo kodo. Hvala :)
include './baza.php';

$sql = "SELECT naslov, opis FROM dogodki WHERE datumKonca >= curdate() ORDER BY datumZacetka;"; 
$rezultat = mysql_query( $sql );
$stDogodkov = mysql_num_rows( $rezultat );

if( $stDogodkov == 0 ) 
{
	echo "<p style='color:white; text-align:left; padding-left:30px'>Dogodki so v pripravi!</p> ";
}
else
{
	while($vrstica = mysql_fetch_array( $rezultat, MYSQL_ASSOC))
	{
		$naslov = nl2br(stripslashes( htmlentities( $vrstica['naslov'], ENT_QUOTES, 'UTF-8' ) )) ;
		$opis = nl2br(stripslashes( htmlentities( $vrstica['opis'], ENT_QUOTES, 'UTF-8' ) )) ;	
		
	
	}	

	
	//kako bi tu naprej sestavla in poslala na spletno stran javascript ki bi menjaval iz baze pobrane naslove in opise
	//torej da se vsakih 5 sec zamenja naslov in pripadajoč opis 
	//ta php bi includala v nek div na strani da bi se izpisovalo v njem 	
	
}	

overlord_tm ::

Rabis naredit funkcijo, ki te podatke spravi v neko obliko (XML, Json) in jih vrne.

Potem pa s pomocjo AJAXa naredis javascript, ki periodicno klice to funkcijo (ubistvu dela HTTP requeste), in azurira vsebino div-a.

Poglej si recimo xajax.
Pod live examples poglej "multiply" primer. Ti rabis samo namesto pritiska na OK prozit stvar z nekim timerjem.

zalla ::

Najprej hvala za odgovor :) Drugače sem čista začetnica in XML, Json in ajax še ne poznam ravno.
Moja koda je za enkrat taka:


include './baza.php';

$sql = "SELECT naslov, opis FROM dogodki WHERE datumKonca >= curdate() ORDER BY datumZacetka;"; 
$rezultat = mysql_query( $sql );
$stDogodkov = mysql_num_rows( $rezultat );

if( $stDogodkov == 0 ) 
{
	echo "<p style='color:white; text-align:left; padding-left:30px'>Dogodki so v pripravi!</p> ";
}
else
{
	echo "<script type='text/javascript'>";
	echo "var quotations = new Array()";
		  
	$i = 0;
	$vrstica = mysql_fetch_array( $rezultat, MYSQL_ASSOC); 
	$naslov =  nl2br(stripslashes( htmlentities( $vrstica['naslov'], ENT_QUOTES, 'UTF-8' ) )) ;
	$opis =  nl2br(stripslashes( htmlentities( $vrstica['opis'], ENT_QUOTES, 'UTF-8' ) )) ;	
	while( $i < $stDogodkov )
	{
		echo "quotations[$i]=\"" . $naslov . "\";";       //"<br />" . '"' . $opis . ";" ;
		$i++;
	}
	echo "function display()";
	echo "{";
	echo "a=Math.floor(Math.random()*quotations.length)";
	echo "document.getElementById('quotation').innerHTML=quotations[a]"; 
	echo "setTimeout("display()",4000)";
	echo "}"
	echo "</script>";
}	



Ali se na tak način to ne da?
Problem je tu, da ne vem, kje bi poklicala funkcijo display()...

snow ::

Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

zalla ::

Samo, če sam v značko body onload, more biti javascript definiran v head znački, kar pa v tem primeru, ko imam php, kakor vem, ne gre. :(

oz med značkama head in /head ne more bit php kode

Zgodovina sprememb…

  • spremenila: zalla ()

PrimozBo ::

Tudi mene zanimam kako je s tem da bi v php-ju kar echal JS kodo tam kjer bi rad nekaj dinamičnega. Ne gre za velke skripte ampak samo po nekaj vrstic. Se to lahko tko dela ?

techfreak :) ::

Tudi mene zanimam kako je s tem da bi v php-ju kar echal JS kodo tam kjer bi rad nekaj dinamičnega. Ne gre za velke skripte ampak samo po nekaj vrstic. Se to lahko tko dela ?

Zakaj pa ne? Saj to je verjetno ena izmed večjih slabostih PHPja, da nima že po defaultu template engine-a in lahko brez težav pišeš karkoli želiš.

<script type="text/javascript">
<?php
if($a == $b) {
echo "var x = 'd';
alert(x);";
}else{
echo "var x = 'hhh';
}
?>
</script>

EnSmotko ::

PHP nima default template engina, ker je že sam template engin, zgornji primer se namreč da lepše napisat tkole:
<script type="text/javascript">
<?php if($a == $b): ?>
var x = 'd';
alert(x);
<?php else: ?>
var x = 'hhh'
}
<?php endif; ?>
</script>

l0g1t3ch ::

Tudi mene nekaj muči

če dam v html tole, stvar deluje
var niz = "foo <br /> bar";
alert(niz);


če pa isto v html izpišem z php-jem pa NE dela
$niz = "foo <br /> bar"; 
echo 'var niz = "' . $niz .'";';
alert(niz);


Če grem gledat source strani je JS v prvem primeru takle
var niz = "foo <br /> bar";
alert(niz);


v drugem primeru pa takle
var niz = "foo 
<br /> bar";
alert(niz);


Tako da težave povzroči značka
<br />
samo nevem zakaj jo v prvem primeru ne upošteva in ne naredi preloma v drugem pa ga.

Kdorkoli, karkoli ?

Zgodovina sprememb…

  • spremenilo: l0g1t3ch ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Rabim pomoč pri PHP-ju.

Oddelek: Šola
5634 (471) Stari89
»

[php] Knjiga gostov

Oddelek: Izdelava spletišč
293080 (2283) darix
»

PHP login skript

Oddelek: Izdelava spletišč
282721 (1307) Lion29
»

[SQL in PHP] Preprost PHP koledarček, ki je povezan z MySQL bazo

Oddelek: Programiranje
91835 (1597) R33D3M33R
»

[php, mysql] sortiranje izpisa iz baze

Oddelek: Izdelava spletišč
262579 (2098) Binji

Več podobnih tem