Ir para conteúdo

POWERED BY:

Arquivado

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

alan89i

problema com textarea (texto muito grande)

Recommended Posts

<?

include "conexao.php";

$id_relatorio = $_GET['id_relatorio'];

$query = "select HOUR(hora_visita)hora, minute(hora_visita)minuto, day(data_visita)dia, month(data_visita)mes, year(data_visita)ano, id_relatorio,id_cadastro,

resp_visita, relatorio from tbl_relatorio where

id_relatorio = '$id_relatorio'";

$result = mysql_query($query);

?>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"/>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Cadastro de obras</title>

<head>

 

<link rel="stylesheet" type="text/css" href="../projetos/formatacao.css"/>

 

</head>

 

 

 

<body bgcolor="#BDBEC3">

 

<!--

<script language="JavaScript">

function validar(){

 

if(document.form.tipo.value=="")

{alert( "O campo tipo é obrigatório!" );

document.form.tipo.focus();

return false;}

 

if(document.form.origem_destino.value=="")

{alert( "O campo origem ou destino é obrigatório!" );

document.form.origem_destino.focus();

return false;}

 

if(document.form.documento.value=="")

{alert( "O campo documento é obrigatório!" );

document.form.documento.focus();

return false;}

 

if(document.form.assunto.value=="")

{alert( "O campo assunto é obrigatório!" );

document.form.assunto.focus();

return false;}

 

if(document.form.dia_documento.value=="")

{alert( "O campo dia é obrigatório!" );

document.form.assunto.focus();

return false;}

 

if(document.form.mes_documento.value=="")

{alert( "O campo mes é obrigatório!" );

document.form.assunto.focus();

return false;}

 

if(document.form.ano_documento.value=="")

{alert( "O campo ano é obrigatório!" );

document.form.assunto.focus();

return false;}

 

 

return true;}

</script>

-->

 

 

<form action="update_relatorio_obras.php" method="POST" name="form" id="form" enctype="multipart/form-data">

<input type="hidden" name="id_relatorio" size="11" onKeyUp="this.value = this.value. toUpperCase()" onBlur="this.value = this.value. toUpperCase()" value="<? echo mysql_result($result,'0','id_relatorio'); ?>" />

 

 

<table cellspacing="0" cellpading="0" border="1" align="center" width="100%">

<tr>

<td>

 

 

<table cellspacing="5" border="0" align="center" width="100%">

 

<tr>

<td align="left" colspan="2" bgcolor="#000000">

 

<a href = "form_cadastro.php" class="rotulo">Cadastrar</a>

 

<font color="#FFFFFF">|</font>

 

<a href = "form_consulta.php" class="rotulo">Consultar</a>

 

<font color="#FFFFFF">|</font>

 

<a href = "form_relatorio.php" class="rotulo">Relatório</a>

</td>

</tr>

 

<tr>

<td align="center" colspan="2" bgcolor="#4682B4">

<font class="rotulo">Relatorio </font></td>

</tr>

 

 

 

 

 

 

<tr>

<td align="right" class="rotulo">*resp./visita:</td>

<td align="left">

<input type="text" name="resp_visita" size="50" tabindex="1" maxlength="70" onKeyUp="this.value = this.value. toUpperCase()" class="conteudo" value="<? echo mysql_result($result,'0','resp_visita'); ?>" />

</td>

</tr>

 

 

<td align="right" class="rotulo">*data:</td>

<td align="left">

<select name="dia" tabindex="2" class="conteudo">

<option value=""></option>

<?

$query = "select dia from tbl_dia order by dia";

$result_query = mysql_query($query);

while ($row = mysql_fetch_array($result_query)){

?>

<option value="<? echo $row['dia'] ?>"><? echo $row['dia'] ?></option>

<?}?>

</select>

 

<select name="mes" tabindex="3" class="conteudo">

<option value=""></option>

<?

$query = "select mes from tbl_mes order by mes";

$result_query = mysql_query($query);

while ($row = mysql_fetch_array($result_query)){

?>

<option value="<? echo $row['mes'] ?>"><? echo $row['mes'] ?></option>

<?}?>

</select>

<select name="ano" tabindex="4" class="conteudo">

<option value=""></option>

<?

$query = "select ano from tbl_ano order by ano";

$result_query = mysql_query($query);

while ($row = mysql_fetch_array($result_query)){

?>

<option value="<? echo $row['ano'] ?>"><? echo $row['ano'] ?></option>

<?}?>

</select>

<font class="rotulo">dd/mm/aaaa</font></td>

</tr>

<tr>

<td align="right" class="rotulo">*hora:</td>

<td align="left">

<select name="hora" tabindex="5" class="conteudo">

<option value=""></option>

<?

$query = "select hora from horas order by hora";

$result_query = mysql_query($query);

while ($row = mysql_fetch_array($result_query)){

?>

<option value="<? echo $row['hora'] ?>"><? echo $row['hora'] ?></option>

<?}?>

</select>

 

<select name="minuto" tabindex="6" class="conteudo">

<option value=""></option>

<?

$query = "select minuto from minutos order by minuto";

$result_query = mysql_query($query);

while ($row = mysql_fetch_array($result_query)){

?>

<option value="<? echo $row['minuto'] ?>"><? echo $row['minuto'] ?></option>

<?}?>

</select>

</td>

 

</tr>

<tr>

<td align="right">

<font class="rotulo">relatorio:</font></td>

<td align="left">

<textarea rows="13" cols="60" name="relatorio" onKeyUp="this.value = this.value. toUpperCase()" class="conteudo" tabindex="7">

</textarea>

</td>

</tr>

 

 

 

<td colspan="2" align="right">

 

<input type="submit" name="Gravar" value="Gravar" onClick="return validar();" class="rotulo"/></td>

 

</table>

 

 

</td>

</tr>

</table>

 

 

</form>

<script>

document.form.dia.value="<? echo mysql_result($result,'0','dia'); ?>";

document.form.mes.value="<? echo mysql_result($result,'0','mes'); ?>";

document.form.ano.value="<? echo mysql_result($result,'0','ano'); ?>";

document.form.hora.value="<? echo mysql_result($result,'0','hora'); ?>";

document.form.minuto.value="<? echo mysql_result($result,'0','minuto'); ?>";

document.form.relatorio.value="<? echo mysql_result($result,'0','relatorio'); ?>";

 

</script>

</body>

</html>

 

Gostaria se alguem pode me ajudar...sou novo no forum e sou novo programando em php.

toda vez que insiro algum texto muito grande no textarea nao consigo retorna os dados da hora e quando eu dou paragrafo no textarea ele nao me retorna mais nada. Se alguem puder ficarei muito grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o tipo de campo que esta no banco de dados text?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá meu amigo,

 

Se fores usar um textarea para [observação, descrição, mais informação] ou seja acima de 255 caracteres, recomendo que na tabela esta coluna seja do tipo text e não varchar().

 

Qual o tipo usado no seu banco de dados para este campo : [text, varchar]?

 

estou no aguardo de sua resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá meu amigo,

 

Se fores usar um textarea para [observação, descrição, mais informação] ou seja acima de 255 caracteres, recomendo que na tabela esta coluna seja do tipo text e não varchar().

 

Qual o tipo usado no seu banco de dados para este campo : [text, varchar]?

 

estou no aguardo de sua resposta.

 

Tipo no banco de dados está como longtext e o que esta sempre dando esse problema é nesse codigo aqui - <textarea rows="13" cols="60" name="relatorio" onKeyUp="this.value = this.value. toUpperCase()" class="conteudo" tabindex="7">

</textarea> - estou usando ele para gravar um relatorio consigo inserir e tudo mas nesse script esta para editar entao eu tento retorna os dados no banco so que usando o textarea para armazenar para poder editar naon esta indo se for muito grande o texto e se tiver paragrafo nele...lembrando que no banco o campo esta como longtext

Compartilhar este post


Link para o post
Compartilhar em outros sites

mude para text que provavelmente não vai da este problema.

 

por que vachar você tem que determinar o numero de caracteres ex: varchar(200);

 

o mysql já fiz testes e ele tem um limit de varchar, quando você coloca varios campos ele soma tudo e não pode passar acho q de 10 mil algo assim não me recordo.

 

se a soma de todos os vachar passar desse numero você ñ consegue mais criar campos vachar, o recomendado e text.

sabe em media quantos caracteres tenta cadastrar? passa de 65 mil?



__________________________________________________________________________

mude para text, e caso mostre algum erro informe o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mude para text que provavelmente não vai da este problema.

 

por que vachar você tem que determinar o numero de caracteres ex: varchar(200);

 

o mysql já fiz testes e ele tem um limit de varchar, quando você coloca varios campos ele soma tudo e não pode passar acho q de 10 mil algo assim não me recordo.

 

se a soma de todos os vachar passar desse numero você ñ consegue mais criar campos vachar, o recomendado e text.

sabe em media quantos caracteres tenta cadastrar? passa de 65 mil?

Amigo no banco está como longtext e é para gravar um relatorio.....então é bastante coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas informe qual eo erro que retorna do banco de dados

 

coloque na query do insert assim

 

mysql_query('insert ...') or die (mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também funcionaria com o longtext, mas, seria melhor utilizar o text e não nenhuma variação do text.

 

Vamos lá,

 

verifica a maneira que está recuperando a variavel.

 

$_GET ou $_POST.

 

 

não se preocupe com o tamanho porque o text ou longtext vai resolver o problema do tamanho do relatório qualquer coisa modifica para text. Provavelmente está sendo na recuperação destas variavel.

 

coloca como está recuperando.

ou o arquivo do

 

update_relatorio_obras.php

 

verifica se está com a conexão com o banco de dados, verifica se os dados do banco está funcionando corretamente.

 

aguardo retorno.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas informe qual eo erro que retorna do banco de dados

 

coloque na query do insert assim

 

mysql_query('insert ...') or die (mysql_error());

Eu consigo pegar os dados do banco, não tem erro nenhum, só que quando é para colocar os dados coletados do banco na parte do textarea ele não vai mas se eu simplesmente colocar numa variavel <? echo mysql_result($result,'0','relatorio'); ?> e jogar no meio da tabela...aparece o conteudo mas so nao consigo colocar no campo textarea

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

mas informe qual eo erro que retorna do banco de dados

 

coloque na query do insert assim

 

mysql_query('insert ...') or die (mysql_error());

Eu consigo pegar os dados do banco, não tem erro nenhum, só que quando é para colocar os dados coletados do banco na parte do textarea ele não vai mas se eu simplesmente colocar numa variavel <? echo mysql_result($result,'0','relatorio'); ?> e jogar no meio da tabela...aparece o conteudo mas so nao consigo colocar no campo textarea

certo, pensei que o problema era no banco, no caso tem html no banco?

pode ser por causa que estaja finalizando </textarea>

 

mas no seu codigo ñ era para você colocar

 

<textarea rows="13" cols="60" name="relatorio" onKeyUp="this.value = this.value. toUpperCase()" class="conteudo" tabindex="7">

<?echo $row[texto]?>
</textarea>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também funcionaria com o longtext, mas, seria melhor utilizar o text e não nenhuma variação do text.

 

Vamos lá,

 

verifica a maneira que está recuperando a variavel.

 

$_GET ou $_POST.

 

 

não se preocupe com o tamanho porque o text ou longtext vai resolver o problema do tamanho do relatório qualquer coisa modifica para text. Provavelmente está sendo na recuperação destas variavel.

 

coloca como está recuperando.

ou o arquivo do

 

update_relatorio_obras.php

 

verifica se está com a conexão com o banco de dados, verifica se os dados do banco está funcionando corretamente.

 

aguardo retorno.

ok vamos la,

sobre o insert está tudo ok a parte mesmo e na hora de colocar os dados no input areatext... eu fiz assim:primeiro eu fiz uma pagina só para visualizar os dados que ficou assim:

$obra= $_POST['obra'];

 

$query = "select tbl_relatorio.id_relatorio, tbl_relatorio.id_cadastro, tbl_relatorio.resp_visita, day(tbl_relatorio.data_visita)dia,

month(tbl_relatorio.data_visita)mes, year(tbl_relatorio.data_visita)ano, hour(tbl_relatorio.hora_visita)hora, minute(tbl_relatorio.hora_visita)minuto, tbl_relatorio.relatorio

from tbl_relatorio inner join tbl_cadastro on tbl_cadastro.nome='$obra'

and tbl_cadastro.id = tbl_relatorio.id_cadastro";

$result_query = mysql_query( $query ) or die( 'Erro na consulta' );

$total = mysql_num_rows($result_query);

if(empty($total)) {

?>

 

<script language="JavaScript" >

alert( "Nenhum registro foi encontrado!" );

history.back(-1);

</script>

 

<?}?>

 

<table cellspacing="0" cellpadding="0" border="1" align="center" width="100%">

<input type="hidden" name="relatorio" size="11" onKeyUp="this.value = this.value. toUpperCase()" onBlur="this.value = this.value. toUpperCase()" value="<? echo mysql_result($result,'0','relatorio'); ?>" />

<tr>

<td align="center" bgcolor="#4682B4" colspan="12">

<font class="rotulo">Consulta de Relatorio </font><? echo $obra; ?>

</td>

 

</tr>

<tr>

 

<td width="100" bgcolor="#87CEFA" align="center" class="titulo_tabela">Responsavel</td>

<td width="100" bgcolor="#87CEFA" align="center" class="titulo_tabela">Data</td>

 

<td width="100" bgcolor="#87CEFA" align="center" class="titulo_tabela">Hora</td>

<td width="100" bgcolor="#87CEFA" align="center" class="titulo_tabela">Visualizar</td>

<td width="100" bgcolor="#87CEFA" align="center" class="titulo_tabela">relatorio</td>

 

</tr>

 

<?

while ($row = mysql_fetch_array( $result_query )){

$dia = $row['dia'];

$mes = $row['mes'];

$ano = $row['ano'];

$data = $dia."/".$mes."/".$ano;

$hora = $row ['hora'];

$minuto = $row ['minuto'];

$tempo = $hora.":".$minuto;

?>

<tr>

 

<td align="center" class="resultado"><? echo $row['resp_visita']; ?></td>

<td align="center" class="resultado"><? echo $data; ?></td>

<td align="center" class="resultado"><? echo $tempo; ?></td>

<td align="center" class="resultado"><? echo $row['relatorio']; ?></td>

<td align="center"><a href="form_relatorio_editar.php?id_relatorio=<? echo $row['id_relatorio'];?>"><img border="0" src="editar.png" width="30" height="30" alt="Editar o Registro">

 

</a></td>

 

 

</tr>

 

<?}?>

</table>

 

funcionou tudo, veio todos os dados ai na hora de ir para a a pagina de editar deu esses erros estranhos que percebi, sobre texto longo d+ ou com paragrafo. (a pagina de editar esta logo ai em cima).

e sobre mudar para tipo text nao rolou, deu o mesmo problema de nao aparecer nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, pensei que o problema era no banco, no caso tem html no banco?

pode ser por causa que estaja finalizando </textarea>

 

mas no seu codigo ñ era para você colocar

 

<textarea rows="13" cols="60" name="relatorio" onKeyUp="this.value = this.value. toUpperCase()" class="conteudo" tabindex="7">

<?echo $row[texto]?>
</textarea>

 

no textarea eu usei o <script> document.form.relatorio.value="<? echo mysql_result($result,'0','relatorio'); ?>"; </script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara acho que esse pro ai e pq vc ta usando junto ao js.

 

se você colocar apenas assim

 

<textarea name="titulo"><? echo $resultado[relatorio]?></textarea>

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas post o erro que deu

aiii amigo funcionou o que você colocou :

<textarea rows="13" cols="60" name="relatorio" onKeyUp="this.value = this.value. toUpperCase()" class="conteudo" tabindex="7"> <?echo $row[texto]?> </textarea>

estava usando com o <script> mas nao tava rolando mas o seu jeito deu certo muuuuuuuito obrigadoooooo

 

 

certo, pensei que o problema era no banco, no caso tem html no banco?

pode ser por causa que estaja finalizando </textarea>

 

mas no seu codigo ñ era para você colocar

 

<textarea rows="13" cols="60" name="relatorio" onKeyUp="this.value = this.value. toUpperCase()" class="conteudo" tabindex="7">

<?echo $row[texto]?>
</textarea>

 

no textarea eu usei o <script> document.form.relatorio.value="<? echo mysql_result($result,'0','relatorio'); ?>"; </script>

obrigado mesmo funcionou...queria com o javascript mas ta valendo obrigadoooooooooo

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.