Foros del Web » Programando para Internet » PHP »

Espacios en blanco en un textarea

Estas en el tema de Espacios en blanco en un textarea en el foro de PHP en Foros del Web. Holas, tengo una pequena duda estoy trabajando en un equipo linux (FC2) con XAMPP(PHP5.0.4) for linux v1.4.16 y ahora estoy trabajando en un proyecto para ...
  #1 (permalink)  
Antiguo 24/11/2005, 13:38
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
Espacios en blanco en un textarea

Holas, tengo una pequena duda estoy trabajando en un equipo linux (FC2) con XAMPP(PHP5.0.4) for linux v1.4.16 y ahora estoy trabajando en un proyecto para la universidad y me tope con un inconveniente y es que tengo un formulario un con un campo que es un <textarea> y ahi muestro lo que recibo de una consulta a mi base de datos mysql, el dato que recupero es la direccion de su domicilio de una persona, el problema esta que cualquier direccion que recupero le pone por delante cuatro espacios(o tabulaciones) y no puedo eliminarlos, otra cosa interesante es que cuando cambio el textarea por un input text lo recupera sin ningun espacio adelante y la verdad ya probe varias cosas y se me acabaron las ideas, no se si alguien ya paso por esto, bueno espero que me puedan dar una ayuda, bueno mas a bajo les dejo algo de mi codigo donde tengo este problema, gracias de antemano por la ayuda que me puedan brindar:

aqui esta cuando uso un textarea y se anade 4 espacios delante:
<div>
<label for="direccionDom" class="mandatRight">
Direccion Domicilio:
</label>
<textarea name="direccionDom" cols="27" class="inputNoBorder" readonly="true">
<!-- elegido es la variable que contiene los datos de mi consulta-->
<?=isset($elegido[5])?$elegido[5]:"";?>
</textarea>
</div>

ahora cuando uso un input no tengo ese problema de los espacios:
<div>
<label for="direccionDom " class="mandatRight">
Direccion Domicilio:
</label>
<!-- elegido es la variable que contiene los datos de mi consulta-->
<input name="direccionDom" type="text" class="inputNoBorder" value="<?=isset($elegido[5])?$elegido[5]:"";?>" readonly="true">
</div>
  #2 (permalink)  
Antiguo 24/11/2005, 14:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Aplica:

trim()
www.php.net/trim

a tu cadena . .así eliminaras todo tabulador, espacio, salto de línea al principio de tu cadena o al final de esta. Sería ideal que esos datos entrasen a tu BD "limpios" (aplicando trim()) para no tener que usarlo cuando presentas esos datos (los obtienes de tu BD) ..

... Pero habría que ver como se ingresan esos datos y ver el por qué de esos caracteres de más ...

Un saludo,
  #3 (permalink)  
Antiguo 24/11/2005, 14:31
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
Bueno sobre el trim() ya use ese metodo tambien probe con ltrim() y hasta pense en un substr() de los 4 primeros caracteres pero aun asi se sigue mostrando ese espacio en blanco . de todas maneras gracias por la respuesta
  #4 (permalink)  
Antiguo 25/11/2005, 07:52
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
Exclamación Espacios al recuperar en un textarea de MySQL

Disculpen que sea un poco insistente pero ya utilize los metodos trim, ltrim y hice algunos amagues con substr() e igual no me funciona sigo en el mismo predicamento no si alguien pueda ayudarme o darme una idea de porque sucede esto, gracias de antemano por la ayuda que me brindan.
  #5 (permalink)  
Antiguo 25/11/2005, 08:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
deadlykyo

Creo que no se trata de que uses tal función para "limpiar" algo de información que por A o B motivo está ingresando a tu BD desde donde la capturas (formulario? .. otro médio?) . .sino en identificar -por qué- se adjunta esa información (espacios o caracteres de control) extra.

En todo ese "predicamiento" no has indicado lo que te menciono ni código que usas para hacer el ingreso de esos datos si corresponde .. tal vez por ahí esté el problema y la solución de -raiz-

Por otro lado usas "classes" (CSS) para dar formato a esos elementos de formulario .. "class="inputNoBorder" .. hasta eso podría influir pero ni es el foro PHP el adecuado para ver esos temas ni indicas el código que corresponde a la definición de ese CSS ..

En fin .. lo primero sería descartar -realmente- si tus datos contienen esos "espacios". ¿Has podido ver esos datos con -otra- aplicación que no sea el código que tu usas? (por ejemplo phpMyadmin o el GUI que uses para Mysql) .. Por lo menos así descartarías problemas al ingreso del dato y que al final cae en cierto campo de tus tablas de tus BD. Luego continuas con el código que extrae los datos (el código PHP que hace la consulta a tu BD para consultarlos) y por último que código que lo "presenta" (el HTML que usas .. los CSS que le aplicas .. etc).

Un saludo,
  #6 (permalink)  
Antiguo 25/11/2005, 08:45
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
Sonrisa

Bueno ya hize la prueba de los datos que tengo registrados en mi BD y los revise como dices con el navicat,consola y phpmyadmin y en ninguno tiene esos espacios la verdad es que los espacios no se donde los saca y como en el primer post esos espacios en blanco solo me salen con un tag de textarea ya que si pongo un input me sale tal cual esta en la base de datos sin ningun espacio extra, ahora sobre el estilo que uso, solo le da color de fondo y bordes, pero igual trate quitando los estilos y aun asi tengo este problema, ahora adjuntare el codigo de la conexion de la base de datos, y como recupero los datos antes de mostrarlos, muchas gracias de todas maneras por la respuesta cluster.

Clase conexion base de datos bdutil.php
Código PHP:
class conexion
{
   
//definicion de Variables 
   
var $BaseDatos;
   var 
$Servidor;
   var 
$Usuario;
   .......

   
/* MИtodo Constructor: Cada vez que creemos una variable
   de esta clase, se ejecutarА esta funciСn */
   
function conexion($bd "sibReal"$host "192.168.0.18"$user "portatil"$pass "mont")
   {
      
$this-> BaseDatos $bd;
      
$this-> Servidor $host;
      
$this-> Usuario $user;
      
$this-> Clave $pass;
   }
   
/*ConexiСn a la base de datos*/
   
function conectar()
   {
      
$this-> conexion mysql_connect($this->Servidor$this-> Usuario$this-> Clave);
      if (!
$this-> conexion)
      {
         
$this-> Error "Ha fallado la conexiСn.";
         return 
0;
      }
   
//seleccionamos la base de datos
      
if (!mysql_select_db($this-> BaseDatos$this-> conexion))
      {
         
$this-> Error "Imposible abrir ".$this-> BaseDatos ;
         echo 
$this-> Error.mysql_error();
         return 
0;
      }
   
/* Si hemos tenido Иxito conectando devuelve
   el identificador de la conexiСn, sino devuelve 0 */
      
return $this-> conexion;
   }
   
/* Ejecuta un consulta */
   
function consulta($sql "")
   {
      if (
$sql == "")
      {
         
$this-> Error "No ha especificado una consulta SQL";
         return 
0;
      }
      
//ejecutamos la consulta
      
$this-> consulta mysql_query($sql$this ->conexion);
      if (!
$this-> consulta)
      {
         
$this->Errno mysql_errno();
         
$this->Error mysql_error();
         return 
0;
      }
      
/* Si hemos tenido Иxito en la consulta devuelve
      el identificador de la conexiСn, sino devuelve 0 */
      
return $this-> consulta;
   }
   
//tengo otros metodos para num de campos y filas y para otras cosas mas pero
   //no los incluyo ya que seria mucho y tal vez innecesario

ahora el codigo donde lo uso estado.php
Código PHP:
    include('../../utils/baseUtil.php');
    include(
'../../utils/utils.php');
    
session_start();
    
$conexion = new conexion;
       
//aqui recupero los datos que muestro en mi textarea
        
if (isset($_SESSION['elegido']))
    {
        
$elegido=$_SESSION['elegido'];
        
$ingeCod$elegido[0];
        
//Consulta para recuperar los datos personales de la tabla INGE y el estado de cuentas de la tabla COBR
        
$queryINGE "SELECT INGEEMAIL, INGEDIRDO, INGETELDO, INGECELUL, COBRNUMRE, DATE_FORMAT(COBRPERIN,'%b %Y'), 
                        MAX(DATE_FORMAT(COBRPERFI, '%b %Y')), COBRTOTAP, INGECODIG    FROM COBR, INGE WHERE COBRCODIN = INGECODIG 
                        AND INGEESTAD=1 AND COBRESTAD =1 AND INGECODIG='"
.$ingeCod."' GROUP BY INGECODIG";
        
$conexion->conectar();
        
$resINGE $conexion->consulta($queryINGE);
        
$elegido[4]= mysql_result($resINGE,0,0);
        
$elegido[5] = ltrim(mysql_result($resINGE,0,1));
        
$elegido[6] = mysql_result($resINGE,0,2);
        
$elegido[7] = mysql_result($resINGE,0,3);
        
$elegido[8] = mysql_result($resINGE,0,4);
        
$elegido[9] = mysql_result($resINGE,0,5);
        
$elegido[10] = mysql_result($resINGE,0,6);
        
$elegido[11] = mysql_result($resINGE,0,7);
        
$conexion->cerrarConexion();
           } 
Ahora te muestro el codigo de como muestro el textarea dentro del mismo archivo que hago la consulta solo que mas abajo.

Código PHP:
  <div>
    <label for="direccionDom" class="mandatRight">
      Direccion Domicilio:
    </label>
    <textarea name="direccionDom" cols="27" class="inputNoBorder" readonly="true">
      <!-- elegido es la variable que contiene los datos de mi consulta-->
      <?=isset($elegido[5])?$elegido[5]:"";?>
    </textarea>
</div>
y lo raro es que cuando cambio de texarea a un input no muestra ningun espacio por delante. bueno de todas maneras gracias por la ayuda que me puedan brindar
  #7 (permalink)  
Antiguo 25/11/2005, 08:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Usas tal cual la definición de "textarea" que ahí indicas (con el comentario .. y el salto de línea?):
Aunque parezca una tontería .. intenta usar:

Código PHP:
<textarea name="direccionDom" cols="27" class="inputNoBorder" readonly="true"><?=isset($elegido[5])?$elegido[5]:"";?></textarea>
Un saludo,
  #8 (permalink)  
Antiguo 25/11/2005, 08:56
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
gracias cluster por la pronta respuesta pero la verdad no entiendo lo que quieres decirme con eso
  #9 (permalink)  
Antiguo 25/11/2005, 09:00
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
gracias cluster, aunque parezca una tonteria tenias razon justo era el salto de linea que mencionas, porque el comentario solo lo puse para comentar esa linea, gracias por todo man
  #10 (permalink)  
Antiguo 25/11/2005, 11:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por deadlykyo
gracias cluster, aunque parezca una tonteria tenias razon justo era el salto de linea que mencionas, porque el comentario solo lo puse para comentar esa linea, gracias por todo man
Me alegro de que solventases el problema .. Por lo menos has podido comprobar en este mensaje como evaluar un problema "aparente" de datos que luego era de "programación" ...

Un saludo,
  #11 (permalink)  
Antiguo 27/12/2005, 13:44
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años, 6 meses
Puntos: 5
saludos a todos!
sobre este tema, he tenido problemas a la hora de desplegar la info en un textarea me arroja un espacio, y esto me pasa solo al usar sql server, ya que con mysql no me genera el espacio en blanco.... la unica forma de quitarle esto que he visto hasta ahora es usar trim a la variable o como lo puso cluster arriba.

alguien tiene una idea de porque me funciona en mysql y en sql server no??

saludos

pd. este es mi primer post en PHP
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #12 (permalink)  
Antiguo 27/12/2005, 14:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Tal vez el "espacio" no sea un espacio como tal sino un código de salto de línea (\n).. o tabulador (\t).. o retorno de carro (\r) o cualquier otro .. Esos "códigos" no se ven .. pero están ahí. Una vez identificado ese "código" podrías pensar o evaluar quien lo puede originar.

Un saludo,
  #13 (permalink)  
Antiguo 23/04/2013, 02:37
 
Fecha de Ingreso: octubre-2010
Ubicación: Costa Brava
Mensajes: 58
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Espacios en blanco en un textarea

Buenas!

A mi me sucede lo mismo, he probado con lo que comentáis aquí pero no me lo soluciona, y no tengo ningún comentario que pueda causarlo como en el primer caso

Código HTML:
Ver original
  1. <p><label><span class="forms">Nom:</span></label><textarea class="txtarea1" cols="27" readonly="true" id="pl_nm" name="pl_nm" value="<?php echo (isset($_POST ['pl_nm']))?$_POST ['pl_nm']:'';?>">
  2.                         <?php
  3.                         echo $resultq1;
  4.                         ?>
  5.     </textarea></p>


Alguien ve algo que a mí se me pasa?

Mil gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:22.