spdio 1 Denunciar post Postado Setembro 20, 2012 Galera, me ajuda em um pequeno problema? Tenho uma TextArea e quero que minha tela respeite quando usuário utilizar o enter para quebra de linha. Fiz diversas pesquisas mas não achei nada claro sobre o assunto. Pelo que entendi tenho que utilizar a função nl2br na hora de exibir as informações,ou seja, quando eu trago o select do banco. Ao dar um insert ou update eu gravo sem nenhum tratamento, pois minha TextArea vai inserir o /n automaticamente. Só que o meu problema esta na hora de gravar, ao dar um submit via jquery a minha informação não é gravada no banco formatada, ou seja, não grava o texto com /n e sim tudo junto. Agora vou um pouco mais além, imaginem um CRUD onde eu possa editar e visualizar uma informação . A visualização ocorre em feita em uma table com uma TD simples e a edição em uma TextArea, qual a melhor forma de sempre eu ter o meu texto formatdo, tanto quando o usuário carrega a visualização, quando a edição? Grato Compartilhar este post Link para o post Compartilhar em outros sites
Vadio 13 Denunciar post Postado Setembro 20, 2012 http://php.net/manual/pt_BR/function.nl2br.php então útilize o nl2br antes Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Setembro 20, 2012 Você sabe que a barra é invertida né?! [ \n ] e não [ /n ] Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 20, 2012 Só que o meu problema esta na hora de gravar, ao dar um submit via jquery a minha informação não é gravada no banco formatada, ou seja, não grava o texto com /n e sim tudo junto Parece estar fazendo correntamente. O problema pode estar nesse meio que descreveu. Se está gravando no banco de dados sem a quebra de linha \n, quer dizer que está havendo algum processo que remova a quebra de linha em algum ponto antes da inserção no banco. Está usando algum editor de texto rico como o tinymce ? Compartilhar este post Link para o post Compartilhar em outros sites
Vadio 13 Denunciar post Postado Setembro 20, 2012 concordo com o hinom se já vai sem tem q verifar esse meio campo ae pra que não faça isso Compartilhar este post Link para o post Compartilhar em outros sites
spdio 1 Denunciar post Postado Setembro 20, 2012 Vadio, utilizar o nlbr antes de gravar no banco também? Grabriel independente de como é a barra o problema não é esse. Hinom, não estou usando editores e nada para tratar esse campo após o submit, do jeito que sai da TextArea ela vai para a query de insert. Obrigado a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Setembro 20, 2012 Mas não entendi isso: Quando vai para o banco, continua certinho o \n ou não? Porque se continuar e com o n12br não funcionar, use o str_replace mesmo: $str = str_replace("\n", "<br />", $string); --Poste seu JQuery, o problema pode estar nele-- Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 20, 2012 #6 ok, eliminamos uma possível falha. entao creio que seja algo relacionado ao php Pode ser alguma configuração específica no server ou algum script que esteja fazendo alguma conversao, tratamento de dados etc. Como você afirma que não há intermediário, é estranho, pois desconheço ou não me lembro de nenhum tipo de configuração que possa remover automaticamente as quebras de linha de dados enviados por POST. Talvez se for via GET.. Uma hipótese seria algo de errado no uso do JQuery. , baseado no que comentou no post #1 ... ao dar um submit via jquery... Está usando ajax (xmlhttp request)? Poderia postar os códigos ? #7 pelo que entendi não é essa a situação.. Ele quer visualizar os dados de volta num textarea, mas ao fazer isso percebe que foi removido as quebras de linha antes da inserção no banco de dados. A questão é, pelo que entendi, descobrir porque a quebras de linha estão sendo removidas antes da inserção no banco de dados. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Setembro 20, 2012 Eu ia dizer o trim. Mas talvez não seja, pois ele só retira no final da linha, ou começo quando não há nada depois. Acho melhor postar o código mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
spdio 1 Denunciar post Postado Setembro 20, 2012 Nossa, que galera atenciosa, obrigado pela ajuda nesse horário. Vou postar mais informaçoes segue: 1) Print da TextArea 2) Print do alert do get do meu Jquery. 3) Print de como o Jquery envia (debug do Firebug). 4) Como grava no banco: PROVA DE ATLETISMO DE 10K E 5KTESTANDOHAAAEEEEHIHI 5) Jquery para submit alert($("#evento_formato").val()); var dataString = '&evento_formato=' + $("#evento_formato").val(); $.ajax({ type: "GET", url: "../../ajaxService/EventoAjaxService.php", data: "action=salvarEvento" + dataString, success: function(ret) { ..... Um detalhe que eu não faço um submit mesmo, mas creio q isso não tenha haver. Realmente o problema é quando dou um get no valor ele vem sem a formação especial (os /n da vida). Grato Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Jacinto 74 Denunciar post Postado Setembro 20, 2012 No JQuery não vi nada de mais. Poste o PHP. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 20, 2012 ídem ao comentário #11 mas tente assim: frm é um id do form: <form id="frm".... > obs: pode definir qualquer outro nome para definir o id. no javascript, recupere-o assim: var frm = $('#frm'); // ao invés de criar manualmente cada parâmetro do form, apenas serialize-os: // isso é útil para o caso dos nomes dos campos do formularios forem iguais aos parâmetro requeridos. dataString = frm.serialize(); $.ajax({ type: 'POST', // troue pelo método POST url: '../../ajaxService/EventoAjaxService.php', data: action=salvarEvento" + dataString, dataType: 'json', async:true, success: function(ret) {.... Em EventoAjaxService.php, modifique os requests de $_GET para $_POST ou $_REQUEST não acho que fará muita diferença.. ainda acho que pode estar no script php em EventoAjaxService.php 4) Como grava no banco: PROVA DE ATLETISMO DE 10K E 5KTESTANDOHAAAEEEEHIHI ok, mas por onde está verificando isso ? Compartilhar este post Link para o post Compartilhar em outros sites
Vadio 13 Denunciar post Postado Setembro 20, 2012 faça o envio por POST utilize a URL "../../ajaxService/EventoAjaxService.php?action=salvarEvento" e o data faca assim $.ajax({ ... data:{ evento_formato: $("#evento_formato").val(), outro_parametro: '' }, ... utilize o nl2br para escrever os dados na tela No JQuery não vi nada de mais. Poste o PHP. ele provavelmente não ta recebendo os dados com \n por causa do método Exatamente como o hiom falou procure usar o form.serializer facilitará bastante sua vida xD Compartilhar este post Link para o post Compartilhar em outros sites
spdio 1 Denunciar post Postado Setembro 20, 2012 Senhores! Venho informar que segui os passos do #12 e funcionou muito bem. Muito obrigado por me ajudarem, ainda mais neste horário. Eu ja utilizava os $_REQUEST, mas alterei o meu jquery para como informaram e funcionou bem. Novamente grato! Ate logo! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 20, 2012 jóia. uma pergunta, está usando utf8, latin-iso ou outro encode ? Compartilhar este post Link para o post Compartilhar em outros sites
spdio 1 Denunciar post Postado Setembro 20, 2012 Desculpe a demora! UTF-8 Tive problemas com isso, muito chato. Aprendi uns truques a um tempo, mas foi muito chato até resolver, caso alguem chegue até aqui por duvida de encode, segue o que faço: 1) Setar todos os PHP de exibição com <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 2) Setar os outros PHP (q nao exibem nada) com ini_set('default_charset','UTF-8'); 3) Converter todos arquivo para UTF-8 sem BOM (via Notepad++) 4) Configurar o banco e tabelas para utf8-general-cli 5) Configurar a conexão do banco mysql_set_charset('utf8'); 6) Não utilizar nenhum cast pra encode. Compartilhar este post Link para o post Compartilhar em outros sites