ciao a tutti,
essendo un principiante di php non me ne vogliate per questa mia richiesta di aiuto, probabilmente molto banale e di facile soluzione.
ho una pagina php codificata in utf-8,
nella quale ho settato i meta:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
e nella quale ho impostato la codifica di myslq con:
mysql_query("set names 'utf8'");
in questa pagina ho un form con un campo textarea
al campo textarea viene associato uno javascript per il conteggio delle parole.
nella pagina php del form ho inserito il controllo dei campo textarea, per cui il campo non pu� essere vuoto, non pu� essere superiore a x caratteri, ecc...
l'idea � quella di fare in modo che js e controllo php sulla stringa del campo textarea contino allo stesso modo
per il controllo della lunghezza della stringa usavo strlen, ma mi dava problemi coi caratteri accentati, per cui preferisco usare mb_strlen($titolo, 'UTF-8') perch� mi conteggia i caratteri accentati come bit e pertanto questi hanno lunghezza 1 e non 5 (js conta 1)
ora il problema � questo: se scrivo qualcosa nel campo textarea e ritorno a capo col tasto invio, js e mb_strlen mi contano la stessa lunghezza
esempio:
ciao
(tasto invio e riga vuota)
totale lunghezza 4 sia in js che per mb_strlen
se invece dopo la riga vuota scrivo dell'altro, mb_strlen (ma nache strlen) mi conta 3 caratteri in pi� rispetto alla funzione in js
esempio
ciao
(tasto invio e riga vuota)
mondo
totale lunghezza 10 per js mentre per mb_strlen � 13
quindi credo che la funzione di js conti la riga vuota seguita da un testo come 1 carattere, mentre mb_strlen conti la riga vuota come se fosse un <br>, quindi 4 caratteri
come posso risolvere questo problema?
posto la funzione js che sto utilizzando abbinata alla textarea:
codice:
<script type="text/javascript">
var massimovrisp1q5 = 150;
window.onload = function()
{
document.modulo.contaz1q5.value = massimovrisp1q5;
}
function Contavalorisp1q5()
{
document.modulo.contaz1q5.value = massimovrisp1q5 - document.modulo.risp1q5.value.length;
if (document.modulo.risp1q5.value.length > massimovrisp1q5)
{
document.modulo.risp1q5.value = document.modulo.risp1q5.value.substr(0, massimovrisp1q5);
document.modulo.contaz1q5.value = 0;
alert("Massimo " + massimovrisp1q5 + " caratteri!");
}
}
</script>
<textarea class="txtarea" id="risp1q5"
name="risp1q5" rows="25" cols="10" tabindex="5"
placeholder="" style="width:70%; height:50px; resize: none;"
onkeyup="myFunction12upq5();Contavalorisp1q5()">
</textarea>
<div class="caratteremanc">caratteri mancanti:
<input type="text" name="contaz1q5" value="150"
id="aacontaz1q5" readonly>
</div>
grazie