Zeux Posted August 22, 2006 at 02:24 PM Report Share #45924 Posted August 22, 2006 at 02:24 PM 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 More sharing options...
kingless Posted August 22, 2006 at 02:27 PM Report Share #45926 Posted August 22, 2006 at 02:27 PM Em vez de colocares: $desc_pt = eregi_replace("","\\n",$desc_pt); Coloca: $desc_pt = nl2br( $desc_pt ); Link to comment Share on other sites More sharing options...
Zeux Posted August 22, 2006 at 03:15 PM Author Report Share #45930 Posted August 22, 2006 at 03:15 PM Com essa função tambem não dá, já tinha tentado tambem 😄 Com nl2br nem no meu pc dá, lol Link to comment Share on other sites More sharing options...
kingless Posted August 22, 2006 at 03:21 PM Report Share #45931 Posted August 22, 2006 at 03:21 PM nl2br tem que funcionar... nl2br serve para fazer exactamente isso que tu queres.... eu estou a programar um CMS (Content Management System) e estou a utilizar esta função e está a funcionar correctamente nas textareas, se calhar não funciona porque estas a utilizar javascript. Link to comment Share on other sites More sharing options...
Zeux Posted August 22, 2006 at 03:24 PM Author Report Share #45933 Posted August 22, 2006 at 03:24 PM 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 More sharing options...
kingless Posted August 22, 2006 at 03:56 PM Report Share #45937 Posted August 22, 2006 at 03:56 PM Tenta assim: $desc_pt = preg_quote( nl2br( $desc_pt ) ); Para "escapar" o caracter que o nl2br gera.... 😄 Link to comment Share on other sites More sharing options...
Zeux Posted August 22, 2006 at 04:19 PM Author Report Share #45941 Posted August 22, 2006 at 04:19 PM Contniua sem dar 😄 Link to comment Share on other sites More sharing options...
kingless Posted August 22, 2006 at 04:22 PM Report Share #45944 Posted August 22, 2006 at 04:22 PM Então não utiliza javascript 😄 acho que é desnecessário utilizar javascript. Link to comment Share on other sites More sharing options...
Zeux Posted August 22, 2006 at 04:39 PM Author Report Share #45949 Posted August 22, 2006 at 04:39 PM 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 Link to comment Share on other sites More sharing options...
kingless Posted August 22, 2006 at 04:58 PM Report Share #45954 Posted August 22, 2006 at 04:58 PM Tena utilizar assim: $desc_pt = eregi_replace("","\\r\\n",$desc_pt); Link to comment Share on other sites More sharing options...
Zeux Posted August 22, 2006 at 05:25 PM Author Report Share #45956 Posted August 22, 2006 at 05:25 PM Voltámos ao inicio... No meu computador funciona 5*, no servidor não... ? Link to comment Share on other sites More sharing options...
Zeux Posted August 23, 2006 at 05:10 PM Author Report Share #46134 Posted August 23, 2006 at 05:10 PM 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 More sharing options...
Zeux Posted August 23, 2006 at 09:30 PM Author Report Share #46164 Posted August 23, 2006 at 09:30 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now