Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

filipecrosk

Erro no cadastro

Recommended Posts

Estou fazendo um sisteminha de cadastro aqui e na hora de inserir o dado ele ate cadastra tudo bunitinho... mas o campo TEXTAREA manda o texto sem dar quebra de linha nem nada... se o cara digita um texto com paragrafo e tals.. o texto fica tudo grudado... e isso é na hora do envio para a página que faz a inserção no banco que ta dando isso... alguem sabe como resolver??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce quer que ele cadastre o banco como se fosse html (enters=<br>) ou que seja como textos normais mesmo (enters=chr(13)) ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo cara..... porque daí quando eu mostro o valor(que é na mesma hora) tem que mostrar todo formatadinho como o cara escreveu... os devidos espacos e as devidas quebras de linhas(<br>) e os devidos paragrafos(<p>)sabe como resolver???ah e tanto faz se for cadastrado no banco o <br> ou o char(13)... aqui no meu caso não esta indo nem um nem outro... se dou uma quebra de linha ele salva no banco junto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perae velho. Tanto faz não...Se voce quer o conteúdo pra jogar num site voce tem a opção de converter antes (já jogando no banco como <br>) ou depois (jogando como chr13 no banco e depois convertendo)Se voce quer o conteúdo pra trabalhar sem ser em site, o recomendável é quebra comum mesmo (chr13).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Micox,desculpa então... mas é que no ASP eu nunca tive problemas com isso, podia jogar no banco já convertido para <BR> como podia deixar lá salvo como chr(13) e nunca tinha tido problemas.Mas diz ai cara.. sabe como resolver esse problema?? e enviar já como <BR>??Abraços,Filipe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, faz o seguinte. Joga direto no banco mesmo, daí na hora de recuperar é só voce usar a função nl2br do php que ele já faz a conversão para <br> pra voce tranquilão...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá micox

 

desde já muito obrigado cara...

mas eu uso ASP e não PHP... mas o problema não esta na hora de exibir os textos e sim na hora que ele cadastra.

Não sei porque cargas d'agua ele manta o texto sem quebra de linha na hora de gravar no banco... antes o texto ia ate sem espaço entre as palavras e isso já consegui corrigir mas a quebra de linha continua bixada.

Fiz um teste colocando um texto no banco de dados com quebra de linha chr(13) e na hora de mostrar esta tudo normal, então o problema realmente é na hora de salvar no banco.

 

Veja meu codigo:

 

//AJAXvar req;function loadXMLDoc(url){	req = null;	// Procura por um objeto nativo (Mozilla/Safari)	if (window.XMLHttpRequest) {		req = new XMLHttpRequest();		req.onreadystatechange = processReqChange;		req.open("POST", url, true);		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");		req.send(null);	// Procura por uma versao ActiveX (IE)	} else if (window.ActiveXObject) {		req = new ActiveXObject("Microsoft.XMLHTTP");		if (req) {			req.onreadystatechange = processReqChange;			req.open("POST", url, true);			req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");			req.send();		}	}}function processReqChange(){	// apenas quando o estado for "completado"	if (req.readyState == 4) {		// apenas se o servidor retornar "OK"		if (req.status == 200) {			// procura pela div id="atualiza" e insere o conteudo			// retornado nela, como texto HTML			document.getElementById('atualiza').innerHTML = req.responseText;		} else {			alert("Houve um problema ao obter os dados:\n" + req.statusText);		}	}}function Atualiza(acao){	loadXMLDoc(acao);}//AJAX
Formulario de envio:

<table width="500" border="0" cellspacing="2" cellpadding="2"><script>function enviar_comentario(form){//campo = unescape(form.comentario.value);id = <%=request("id")%>;		 	 var campo = form.comentario.value;			 campo = campo.replace(/\+/g," ");		 campo = unescape(campo); //loadXMLDoc('relatorios_ajax.asp?id='+ id +'&comentario='+ campo +'&acao=inseri'); Atualiza('relatorios_ajax.asp?id='+ id +'&comentario='+ campo +'&acao=inseri');//window.open('relatorios_ajax.asp?id='+ id +'&comentario='+ campo +'&acao=inseri');}</script>				  <tr>			<td><textarea name="comentario" cols="80" rows="8" class="form" id="comentario"></textarea></td>		  </tr>		  <tr>			<td><input name="Button" type="button" class="form" value=" Salvar " onClick="enviar_comentario(this.form);"></td>		  </tr>		</table>

Código que salva no banco:

comentario = replace(request("comentario"),"'","''")	comentario = replace(comentario,chr(13),"<br>")		comentario = server.HTMLEncode(comentario)	if comentario <> "" then	Conectar	sql = "Insert into relatorios_detalhes (usuario,id_relatorio,comentario,data) values ('"&session("usuario.id")&"','"&request("id")&"','"&comentario&"','"&data&"')"	'response.Write(sql)	'response.End()		objconn.execute(Sql)		response.Write("<p align='center' class='verdana size11 bold'>Relatório inserido com sucesso!</p>")	Desconectar
você pode ver que aí no código que salva no banco eu ate verifico se existe alguma quebra de linha e se existir coloco um <BR>.... mas não esta vindo quebra de linha...

 

 

se tiver alguma ídeia ai cara vou aradecer muitãooo!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza.

FAça a seguinte alteração:

 

Transforme isso aqui:

var campo = form.comentario.value;			 campo = campo.replace(/\+/g," ");		 campo = unescape(campo);

Nisso aqui:

var campo = form.comentario.value;			 campo = encodeURIComponent(campo);

Testa aí e me fala o que que deu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caraaaaaaaaaaaaaa!!!!

Deu certo.... não sei nem o que dizer!!!! Que emoção http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

 

virei seu fã agora http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Abração http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá estou com o problema parecidu..o meu problema eh assim.. grava com o \r\n normal la no banco de dados e aparece como newline (uso no php o comando nl2br) pra mudar o \r\n pra <br> entao POREM quando eu uso o script (ajax) em um formulario no IE ele nao retorna as linhas setadas como entrer, o que eu preciso eh ele aparecer no textarea do IE os enters gravados no banco de dados.... tem alguma solução pra isso??PS: nao grava em <br> e sim em \r\naguardo amigos

Compartilhar este post


Link para o post
Compartilhar em outros sites

POREM quando eu uso o script (ajax) em um formulario no IE ele nao retorna as linhas setadas como entrer, o que eu preciso eh ele aparecer no textarea do IE os enters gravados no banco de dados....

Um textarea em qualquer navegador NÃO deve interpretar caracteres html. Ou seja, se voce escrever <br> em um textarea deverá aparecer <br> e não uma quebra de linha.Então, supondo que eu tenha entendido seu problema, pra voce exibir corretamente as quebras de linha dentro do textarea é SÓ VOCE NÃO FAZER NENHUMA CONVERSÃO.Não usa o nl2br na hora de jogar os dados na textarea.Simples.TEstae....

Compartilhar este post


Link para o post
Compartilhar em outros sites

xiii cara....oia eu aqui de novo.... agora deu pau foi nos meus acentos... :se eu já uso aquel CharSet na minha página e tals.. antes os acentos funcionavam direitinho... agora que deu erro.. ah e você sabe se tem algum limite no tamanho do texto que pode ser enviado?? no IE um texto grande deu pau e o mesmo texto no Firefox foi direitinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que sinistro cara... mas estou usando via POST.... o mais maluco achei foi que pelo FF funcionou e no IE não funcionou.. sinistro demais viu..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.