PDA

Visualizza versione completa : PHP con effetti di testo ?


MasterJumper
03-04-2009, 18.25.19
Salve - Vengo subito al dunque ........dovrei aggiungere un effetto stile macchina da scrivere ( text teletype ) al testo che viene recuperato da un database Mysql

ho provato in vari modi ma non ho ottenuto alcun risultato
ad esempio con il Tag TT :


echo "<a><TT> $testo </a></TT><br>";


Conoscete una soluzione ?

Di seguito posto alcuni esempi di codice stile telescrivente :


<html>
<head>
<title>Effetto Macchina da scrivere</title>
</head>
<script language=Javascript>
<!-- begin
var max=0;
function textlist()
{
max=textlist.arguments.length;
for (i=0; i<max; i++)
this[i]=textlist.arguments[i];
}
tl=new textlist
(
"testo testo testo testo",
"testo testo testo",
"testo testo testo"
);
var x=0; pos=0;
var l=tl[0].length;
function textticker()
{
document.tickform.tickfield.value=tl[x].substring(0,pos)+"|";
if(pos++==l) { pos=0; setTimeout("textticker()",1000); x++;
if(x==max) x=0; l=tl[x].length; } else
setTimeout("textticker()",50);
}
// end -->
</script>
</head>

<body onload="textticker()">

<form name="tickform"><input type=text name="tickfield" size=40></form>
</body>
</html>





OPPURE :


<html>
<head>
</head>
<body>
<br><br><br><br>
<script language="JavaScript1.2">
<!--
var it=0
var head="display:''"
function initialize(){
mytext=typing.innerText
var myheight=typing.offsetHeight
typing.innerText=''
document.all.typing.style.height=myheight
typeit()
}
function typeit(){
typing.insertAdjacentText("beforeEnd",mytext.charAt(it))
if (it<mytext.length-1){
it++
setTimeout("typeit()",100)
}
else
return
}
if (document.all)
document.body.onload=initialize
-->
</script>
<span id="typing" style="visiblity:hidden;height:2" style=&{head};>Bla bla bla bla bla bla </span>
</body>
</html>



Grazie in anticipo per un'eventuale risposta

Alhazred
03-04-2009, 19.34.09
Ma ti serve in PHP o Javascript?
Gli esempi che hai riportato sono in Javascript e nel titolo dici di volerlo fare in PHP.

Comunque in php potresti fare una cosa di questo tipo


$ritardo = 200; //millisecondi di ritardo che vuoi tra una lettera e l'altra

$testo = mysql_query("query per recuperare il testo dal db,$connessione_al_db);
$lunghezza_stringa = strlen($testo);

for($i=0; $i<$lunghezza_stringa; $i++) {
print substr($testo,$i,1);
sleep($ritardo);
}

MasterJumper
03-04-2009, 19.57.25
Ciao Alhazred

Ma ti serve in PHP o Javascript?

Preferirei in Php , ma gli esempi che sono riuscito a trovare erano in javascript !

Ho provato a inserire il tuo codice ma non va .....dovrei aggiungerlo così ?


<?php
include("open.php");
$chiave=$_REQUEST['chiave'];
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$keys = explode (",", $chiave);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys))
{ $parola = trim($parola);
if ($parola != "")
$query .= "titolo = '$parola' OR testo = '$parola' OR autore = '$parola' OR ";
}
$query .= " 0";
$ritardo = 200; //millisecondi di ritardo che vuoi tra una lettera e l'altra
$lunghezza_stringa = strlen($testo);
for($i=0; $i<$lunghezza_stringa; $i++) {
print substr($testo,$i,1);
sleep($ritardo);
}
$query = "SELECT id, testo, data FROM news WHERE " . $query;
$result = mysql_query($query, $db);
if (mysql_num_rows($result)==0) {
die ("Articolo non trovato ............");
}
else
while ($row = mysql_fetch_array($result))
{
$data = date("",$row['data']);
$testo = $row['testo'];
echo
"<a>&nbsp</a><br>";
echo "<a><tt><h2> $data &nbsp $testo </a></tt></h2><br>";
}
mysql_close($db);
foot();
?>



Ciao e Grazie per adesso !

Alhazred
03-04-2009, 22.17.34
mmm... prima ti ho risposto un po' di corsa e non ho considerato una cosa: php è un linguaggio server side, il che vuol dire che quando la pagina ti appare, il codice php è bello che andato, quindi è ovvio che non hai avuto l'effetto macchina da scrivere, in php non puoi farlo.

MasterJumper
04-04-2009, 00.22.19
Si può fare ecco la soluzione che mi e stata suggerita :


<span id="typing" style="visiblity:hidden;height:2" style=&{head};><?php echo $testo; ?>



Ti ringrazio comunque --- Ciao :jump: :jump: :jump: