PDA

View Full Version : [PHP+JAVASCRIPT] Problema scrittura PHP


Baio84
28-02-2013, 13:53
Ho un problema, forse un po' stupido e forse semplice da risolvere.
In pratica ho questo codice php che mi stampa diversi tag immagine con all'interno di ogni tag un onClick con codice javascript. Il problema è che quando visualizzo la pagina, le immagini si vedono però il codice javascript non funziona perchè durante la scrittura dei tag, php non scrive tutto sulla stessa riga ma va a capo, facendo sballare javascript.
Posto del codice che si capisce meglio:

PHP
<?php
$emoticon = filecartella ('red fox/*.*','caratteri.txt');
$a = 0;
foreach ($emoticon as $smile => $img)
{
echo '<img src="'.$img.'" onClick="document.form1.commento.value += \' '.$smile.' \'" />&nbsp;&nbsp;';
if ($a % 6 == 5)
echo '<br />';
$a++;
}
?>

HTML
<img src="red fox/msn_red_fox_smilies-01.gif" onClick="document.form1.commento.value += ' (lingua)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-02.gif" onClick="document.form1.commento.value += ' (cuore)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-03.gif" onClick="document.form1.commento.value += ' (ghigno)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-04.gif" onClick="document.form1.commento.value += ' (binocolo)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-05.gif" onClick="document.form1.commento.value += ' (shock)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-06.gif" onClick="document.form1.commento.value += ' (forza)
'" />&nbsp;&nbsp;<br /><img src="red fox/msn_red_fox_smilies-07.gif" onClick="document.form1.commento.value += ' (cucu)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-08.gif" onClick="document.form1.commento.value += ' (ghost)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-09.gif" onClick="document.form1.commento.value += ' (ahah)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-10.gif" onClick="document.form1.commento.value += ' (occhi)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-11.gif" onClick="document.form1.commento.value += ' (mmm)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-12.gif" onClick="document.form1.commento.value += ' (pappa)
'" />&nbsp;&nbsp;<br /><img src="red fox/msn_red_fox_smilies-13.gif" onClick="document.form1.commento.value += ' (cry)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-14.gif" onClick="document.form1.commento.value += ' (nonso)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-15.gif" onClick="document.form1.commento.value += ' (dubbio)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-16.gif" onClick="document.form1.commento.value += ' (occhio)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-17.gif" onClick="document.form1.commento.value += ' (risata)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-18.gif" onClick="document.form1.commento.value += ' (evviva)
'" />&nbsp;&nbsp;<br /><img src="red fox/msn_red_fox_smilies-19.gif" onClick="document.form1.commento.value += ' (altro)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-20.gif" onClick="document.form1.commento.value += ' (angelo)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-21.gif" onClick="document.form1.commento.value += ' (ninja)
'" />&nbsp;&nbsp;<img src="red fox/msn_red_fox_smilies-22.gif" onClick="document.form1.commento.value += ' (lalla) '" />&nbsp;&nbsp;

Alla fine di ogni immagine, il ['" />] mi va a capo, facendo sballare javascript. L'ultima immagine è a posto e funziona.
Si può risolvere in qualche modo? :mbe:

wingman87
28-02-2013, 23:29
Cosa fa la funzione filecartella? Probabilmente legge le righe di un file una ad una e le divide in due ma della seconda parte mantiene anche il carattere di ritorno a capo e questo spiegherebbe perché l'ultimo tag è chiuso bene (se il file non contiene una riga vuota in fondo).

Baio84
01-03-2013, 10:52
Avevo già risolto cambiando le parentesi tonde con quelle quadre (shock) => [shock], e con questo cambiamento andava tutto, imputando a questo il problema. Solo che adesso questo tuo post mi ha fatto venire in mente che avevo aggiunto la funzione rtrim() e che quindi il reale problema era la mancanza di questa. Infatti hai ragione! Utilizzo file() per leggere un file txt. Conosco il problema di file() e la sua soluzione con rtrim(), solo che non l'avevo messa!:doh: