Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Espacio extra al final usando textarea y explode

Estas en el tema de Espacio extra al final usando textarea y explode en el foro de PHP en Foros del Web. Buenas, Tengo un textarea en la cual se introducen una serie de colores a elegir por el usuario. Se tienen que meter uno por línea. ...
  #1 (permalink)  
Antiguo 14/12/2017, 00:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 14 años, 8 meses
Puntos: 3
Espacio extra al final usando textarea y explode

Buenas,

Tengo un textarea en la cual se introducen una serie de colores a elegir por el usuario. Se tienen que meter uno por línea.


Código HTML:
<form id="insertarColores" name="insertarColores" method="post" action="insertaColores.php" onsubmit="validar()">
<textarea name="colores" id="colores" rows="5" cols="40"></textarea>
</form> 
Un formulario muy simple. Validar() simplemente valida que el textarea no esté vacío.

insertaColores tiene:

Código PHP:
/*Conectamos con la base de datos*/
        
$conexion bd ();
    
/*Recogemos los datos del formulario*/
        
$colores$_POST["colores"];
$a explode("\n"$colores);

foreach ( 
$a as $color=> $valor)
{
                    
    
$sql "INSERT INTO colores (color)
               VALUES ('"
.$valor."')";
                        
    
$res mysql_query($sql);
                

Este código funciona bien con una sola salvedad. Me mete un espacio extra al final de cada color menos del último de la lista.

Ejemplo:

Meto en el textarea:

rojo
azul
amarillo
verde

En la base de datos me mete una fila por color (bien) pero para los tres primeros mete un espacio extra al final y para el último (verde) no. Entiendo que al haber un salto de línea, lo interpreta como un espacio y como en el último elemento no lo hay, pues no lo mete.

Cómo podría evitar que me metiera ese espacio extra?

Gracias por anticipado!
  #2 (permalink)  
Antiguo 14/12/2017, 04:03
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Espacio extra al final usando textarea y explode

Puedes darle trim a todo y quedar tranquilo:

$colores= trim($_POST["colores"]);

$sql = "INSERT INTO colores (color) VALUES ('".trim($valor)."')";

Ve que tal
  #3 (permalink)  
Antiguo 14/12/2017, 04:42
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Espacio extra al final usando textarea y explode

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
Puedes darle trim a todo y quedar tranquilo:

$colores= trim($_POST["colores"]);

$sql = "INSERT INTO colores (color) VALUES ('".trim($valor)."')";

Ve que tal
Buenas compi, gracias por contestar.

Con Trim me quitaría los espacios de en medio? Por ejemplo, si tengo Azul Marino...me quitará el espacio y me lo dejará como AzulMarino??

Gracias!!
  #4 (permalink)  
Antiguo 14/12/2017, 04:55
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Espacio extra al final usando textarea y explode

Cita:
Iniciado por bienpiyao Ver Mensaje
Buenas compi, gracias por contestar.

Con Trim me quitaría los espacios de en medio? Por ejemplo, si tengo Azul Marino...me quitará el espacio y me lo dejará como AzulMarino??

Gracias!!
Me auto respondo. Funciona perfectamente. Me mete los valores en la base de datos sin espacios al final y respeta los que pueda haber en medio.

Muchísimas gracias!!!
  #5 (permalink)  
Antiguo 14/12/2017, 07:25
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Espacio extra al final usando textarea y explode

Jajaja ok. Genial que te haya servido

Saludos

Etiquetas: espacio, explode, extra, final, formulario, mysql, sql, textarea, usando
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 10:33.