+ Responder Tema
Resultados 1 al 13 de 13

Tema: Saltos de línea en formularios.

  1. #1
    Me va gustando esto... Habitante _St Está en el buen camino
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    1

    Arrow Saltos de línea en formularios.

    Bueno verán, tengo un formulario sencillo y normal en html (por esto no pongo el código) con un textarea de esta forma:

    Código:
    <textarea name="lala" cols="40" rows="5"></textarea>
    Y cuando el usuario manda el texto a través de el, me lo manda todo junto, es decir, si el usuario ingresó:

    Cita Iniciado por usuario1
    Textos
    Con
    Saltos
    De
    Línea
    Amí me aparece (al mostrarlo, no sé si en la base de datos también):

    Cita Iniciado por usuario1
    Textos Con Saltos De Linea
    Alguien sabe como puedo hacer para que me guarde los saltos de línea que me dio el usuario? De lo contrario el pobre tienen que coloca <br /> al final de cada frase :(

    Saludos!

  2. #2
    Moderador CCTW Habitante Yaneth will become famous soon enough Avatar de Yaneth
    Fecha de Ingreso
    27 abr, 07
    Ubicación
    Mèxico
    Mensajes
    10,461
    Poder de Reputación
    60
    veamos
    necesitamos saber que tan basico es tu formulario
    yo tengo uno tambien, y a mi si me manda los saltos de linea como los ponga el usuario

    si pudieras mostrarnos el codigo php, seria exelente
    claro si necesitas ocultar correos electronicos o contraseñas... haslo

    saludos
    ______________________________________

    reparacion de rines


    _____________________________________

  3. #3
    Me va gustando esto... Habitante _St Está en el buen camino
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    1
    Es un formulario simplísimo!
    <input type="text" name="lala"><br />
    <textarea name="lala2" cols="30" rows="5"></textarea><br />

    Y el php no lo pongo completo, pero el sistema es así:

    Código:
    <?php
    mysql_query("INSERT INTO tabla(value1,value2) VALUES ('"$_POST["lala"]"', '"$_POST["lala2"]"')") or die ("Problemas al insertar");
    ?>
    Es por esto que no entiendo XD!

    Saludos!

  4. #4
    Moderador CCTW Habitante Yaneth will become famous soon enough Avatar de Yaneth
    Fecha de Ingreso
    27 abr, 07
    Ubicación
    Mèxico
    Mensajes
    10,461
    Poder de Reputación
    60
    haaaaaaaaaaaaa
    es que se va a una base de datos... no te llega directo al correo electronico....
    tendré que hacer una prueba con mi base y te cuento

    saludos
    ______________________________________

    reparacion de rines


    _____________________________________

  5. #5
    Me va gustando esto... Habitante _St Está en el buen camino
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    1
    Ok, gracias, sí, no uso correos XD!

    Saludos!

  6. #6
    Esto empieza a ser un vicio... Habitante skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    Hola, lo que pasa es que el contenido de un textarea no tiene formato HTML, por ende, si lo ves con el navegador (o la base de datos) lo verás como una simple línea como has mostrado (en la base de datos siempre se verá sin formato, incluso si tiene HTML dentro del texto). Si quieres que sea vea con formato, tienes que inventar una forma que reconozca los saltos de línea y los transforme en la etiqueta <br /> (no sé si ya existe una función en PHP que lo haga); por ejemplo:

    Código PHP:
    <?php
      $msg 
    $_POST['mensaje'];
      
    // $msg será el contenido del textarea:
      
    $temp preg_replacePHP_EOL'<br />'$msg );
      echo 
    $temp;
    ?>
    Lo anterior reemplaza los saltos de línea (\n o \r\n, depende del sistema operativo) por etiquetas que insertan un salto de línea en HTML.

    Espero que te sirva, saludos.

  7. #7
    Me va gustando esto... Habitante _St Está en el buen camino
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    1
    Hmm, no hay forma más sencilla de hacerlo? La verdad es que tengo muchos campos y esto me dificultaría el trabajo.

    Saludos!

  8. #8
    Esto empieza a ser un vicio... Habitante skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    Hmmm, la solución es más complicada XD. La solución sería recorrer el array $_POST (en una función) y buscar y reemplazar en cada índice el contenido que quieres modificar; el problema es que el array no se puede recorrer con for( $i = 0; $i < count( $_POST ); $i++), puesto que $_POST no tiene índices numéricos, es un Objeto (en el contexto de programación orientada a objetos).

    Saludos.

  9. #9
    Me va gustando esto... Habitante _St Está en el buen camino
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    1
    Buaaaaaaaaaaaaaa, mejor uso el otro código XD!
    Entonces debería, suponiendo que tengo 3 textareas, con los nombres: 1,2,3.
    Debería ser así?:

    Código:
      $msg = $_POST['1'];
      // $msg será el contenido del textarea:
      $temp = preg_replace( PHP_EOL, '<br />', $msg );
      echo $temp;
      $msg = $_POST['2'];
      // $msg será el contenido del textarea:
      $temp = preg_replace( PHP_EOL, '<br />', $msg );
      echo $temp;
      $msg = $_POST['3'];
      // $msg será el contenido del textarea:
      $temp = preg_replace( PHP_EOL, '<br />', $msg );
      echo $temp;
    De todas formas te agradecería que me explicaras cosas como la función preg_replace y valor PHP_EOL porque no entendí nada XD!

  10. #10
    Esto empieza a ser un vicio... Habitante skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    Ok. preg_replace() es una función que utiliza expresiones regulares para reemplazar todas las ocurrencias encontradas (especificadas por el primer parámetro) dentro del tercer parámetro (que, generalmente, es una cadena de caracteres o string) por lo que hay en el segundo parámetro. Vale decir, en el caso anterior, preg_replace() leería letra a letra el mensaje ($msg) y reemplazaría PHP_EOL (que ya explicaré) por el salto de línea HTML (<br />).

    PHP_EOL es una constante (definida por el intérprete de PHP al momento de compilar el programa) que define el salto de línea que utiliza el sistema operativo. En concreto, en Windows, el salto de línea es \n\r (o al revés, siempre me confundo - Windows tenía que ser XD), mientras que en Linux y Unix es \n (sin \r). Estos caracteres se utilizan solo en la línea de comandos (consola, CMD, símbolo del sistema, etc.), pero supongo que es el caracter insertado en los saltos de línea en una base de datos. Si no funciona, entonces me equivoqué XD.

    En resumen, preg_replace(), en tu caso, reemplazará todos los saltos de línea (\n o \n\r) por los saltos de línea HTML (<br />) dentro del mensaje ($msg).

    Saludos.

  11. #11
    Esto empieza a ser un vicio... Habitante Doodleo has a spectacular aura aboutDoodleo has a spectacular aura about Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,029
    Poder de Reputación
    8
    skaparate, en vez de usar preg_replace() podría usarse str_replace() ? Cuál es mejor usar?

    Saludos!

  12. #12
    Esto empieza a ser un vicio... Habitante skaparate will become famous soon enoughskaparate will become famous soon enough
    Fecha de Ingreso
    02 may, 11
    Mensajes
    535
    Poder de Reputación
    4
    Según entiendo, los motores de expresiones regulares son más rápidas que una búsqueda común, por ende sería mejor preg_replace() (aunque el parámetro de reemplazo no sea una expresión regular como tal). Ambas funciones aceptan los mismos tipos de parámetros (strings o arrays de strings), así que preg_replace debería usarse con expresiones regulares.

    preg_replace();
    str_replace();

  13. #13
    Me va gustando esto... Habitante _St Está en el buen camino
    Fecha de Ingreso
    10 oct, 11
    Mensajes
    189
    Poder de Reputación
    1
    Genial, muchas gracias, ahora lo entiendo! Luego lo pruebo, estoy cansado ._.

    Salu2!

+ Responder Tema

Temas Similares

  1. Crear Formularios Web en línea
    Por formularios en el foro Otros Programas
    Respuestas: 0
    Último Mensaje: 02/11/2008, 08:33
  2. Saltos de línea en texto web
    Por Insomne en el foro Foro General
    Respuestas: 10
    Último Mensaje: 22/04/2008, 10:51

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes