Jump to content

Problema com Textarea


Zeux

Recommended Posts

Boas

Estou aqui a precisar de uma pequena ajudita  😄

Tenho numa página uma textarea onde vai ser escrita uma descrição de uma peça, e vai ter quebras de linha à mistura.

O que eu fiz foi guardar o valor da textarea directamente na bd, e depois quando vou editar uma peça, vou buscar o valor à bd para colocar na textarea, mas antes disso, fasso o seguinte:

$desc_pt=eregi_replace("

","\\n",$desc_pt);

Ou seja, trocar os enter pelo \n para apresentar as quebras de linhas na textarea. Isto está a funcionar perfeitamente no apache no meu pc, mas agora pos o site num servidor e não me está a funcionar, sempre que vou editar um produto dáme um erro de javascript, isto acontece porque a textarea é colocada por javascript através de innerhtml e deve de haver um caracter que depois estraga o resto

document.getElementById("dados").innerHTML="Português: <textarea name=\"desc_pt\" class=\"textareas\" readonly ><?php print $desc_pt ?><\/textarea><br /><br />Inglês: <textarea name=\"desc_en\" class=\"textareas\" readonly ><?php print $desc_en ?><\/textarea><br /><br />Francês: <textarea name=\"desc_fr\" class=\"textareas\" readonly ><?php print $desc_fr ?><\/textarea><br /><br />Alemão: <textarea name=\"desc_ge\" class=\"textareas\" onkeyup=\"alemao1()\" readonly ><?php print $desc_ge ?><\/textarea>"

O mais estranho é que no meu pc funciona bem  :dontgetit:

Link to comment
Share on other sites

Pois, quase de certeza que é por causa do javascript

O problema deve ser que o nl2br gera o caracter de quebra de linha sem ser escaped, ou algo do género, ou seja, tenho:

innerhtml="..echo $desc_pt;....."

o que acontece deve ser que ao fazer o echo escreve algum caracter que faz saltar fora das aspas do innerhtml, pelo menos penso eu...

Link to comment
Share on other sites

Só se mudar mesmo o funcionamento disto

Porque isto é do género: uma peça pode ser uma cabine, e neste caso vão existir os campos descrição em português, inglês, francês e alemão, ou pode ser de umaoutra categoria, e nesse caso só vai existir o campo referência.

E então tava a usar javascript para preencher o div dinamicamente dependo do tipo de peça

Neste caso só se inventar outra coisa...

Mas o que acho mais esquesito é dar no meu pc e no server não  :wallbash:

Link to comment
Share on other sites

Este problema deve ter a haver algo com as diferentes configurações do php

Como é um servidor web deve ter regras mais restritas de segurança e deve ser isso que me está a causar o problema

Agora o que resta saber é ao certo o que causa o problema para tentar encontrar algo que o desfaça  😄

Já tou farto de fazer várias tentativas, mas nada...

Página com o problema

O código que tenho para teste do erro é este:

$sql = mysql_query("select * from pecas where peca_id=31");

$desc_pt=mysql_result($sql,0,"peca_desc_pt");

echo $desc_pt;

E quando a página é carregada é chamada esta função:

function mudaaccao(){
document.getElementById("dados").innerHTML="Português: <textarea name=\"desc_pt\" class=\"textareas\" readonly ><?php echo $desc_pt; ?><\/textarea>"
}

Se quiserem vejam na consola de javascript o erro que dá, que pelo que penso é causado pelo que já tinha dito  😄

Link to comment
Share on other sites

Após tempos de volta disto descobri a solução  😄

Tinha chegado à conclusão que o problema estava na variável php porque fiz:

alert("<?php $variavel_php; ?>")

Isto assim dava erro, mas se copiasse o resultado do echo dessa variável e fizesse isto:

$variavel_php="resultado do echo"

Isto assim já dava  😁

Então o problema tinha que estar na variável devolvida da bd, e então assim já funciona:

//substituir os enters por \n
$desc_pt=eregi_replace("
","\\n",$desc_pt);

//mudar a variável para funcionar em javascript
$desc_pt=strtr($desc_pt,"\n\r\t\0","    ");
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.