Allora ho un problema abbastanza curioso: volevo realizzare uno script Javascript, che in combinazione con PHP, mi creasse un testo scorrevole contenente tutti i commenti lasciati dagli utenti attraverso un form apposito sul mio sito.
Quindi ho realizzato questo codice:
In pratica lo script PHP mi scrive il codice Javascript necessario per il testo scorrevole, in maniera dinamica.codice://Creare la funzione che legge nel database(gli ultimi 6 commenti). function writeDB($nome,$commento) { $connessione=mysql_connect("xxxxx","xxxxxx","xxxxx") or die("connessione non riuscita, errore: ".mysql_error()); mysql_select_db("database"); $result=mysql_query("insert into Commentario(Nome,Commento) values('$nome','$commento');",$connessione); mysql_free_result($result); mysql_close($connessione); } //adesso controllare se è stato inviato un commento if (!empty($_POST["commento"])) { ......... writeDB($_POST["nome"],$_POST["commento"]); } //adesso bisogna leggere dal database i commenti $connessione=mysql_connect("xxxxxx","xxxxxxx","xxxxx")or die("errore: ".mysql_error()); mysql_select_db("database",$connessione); $result=mysql_query("select Nome,Commento from Commentario order by Id desc limit 6",$connessione); $f=mysql_num_rows($result); /* scrivere il codice javascript per creare gli array della dimensione necessaria:*/ echo "<script type=\"text/javascript\">\n<!--\nmsg=\" \";\nnome=new Array($f);\ncommento=new Array($f);\n"; $i=-1; /* adesso in base ai dati estratti dal database scrivere il codice javascript per assegnare i valori agli array creati */ while ($line=mysql_fetch_array($result,MYSQL_ASSOC)) { $i++; echo "nome[$i]=\"".str_replace("\n","",$line["Nome"]) ."\";\n"; echo "commento[$i]=\"".str_replace("\n","",$line["Commento"]) ."\";\n"; } /*Adesso scrivere il codice Javascript necessario per l'effetto "test scorrevole": */ echo "pos = 0;\n for (indice in nome)\n {\n msg+=\"\"+nome[indice]+\": \"+commento[indice]+\" \";\n }\n function ScrollMessage() {\n msg =msg.substring(pos, msg.length) + msg.substring(0, pos);\n var div = document.getElementById(\"scroll\");\n div.innerHTML = msg;\n pos++;\n if (pos > msg.length) pos = 0;\n window.setTimeout(\"ScrollMessage()\",400);\n }\n //-->\n </script>\n"; mysql_free_result($result); mysql_close($connessione);
Tutto ciò sembra funzionare(anche grazie all'uso dei CSS per sistemare questo effetto nella pagina), ma ogni tanto qualche commento viene scitto così nella pagina xhtml:
Cioè in pratica ogni tanto mi va a capo dove non dovrebbe, tutto ciò, nonostante che io abbia utilizzato la seguente funzione php :codice:commento[3]="commento.... ";
Questa riga di codice dovrebbe togliere tutti i ritorni a capo, eppure mi ritorna a capo lo stesso.codice:str_replace("\n","",$line["Commento"])
Naturalmente il browser non mi esegue lo script javascript, proprio per questo motivo. Come posso fare?
Pensavo che la mia soluzione per realizzare questo testo scorrevole con tutti i commenti degli urenti (estratti dall'apposito database MYSQL) fosse buona, ma ho purtroppo questo problema....