Foros del Web » Programando para Internet » PHP »

Visualización de un campo texto

Estas en el tema de Visualización de un campo texto en el foro de PHP en Foros del Web. Vamos a ver si soy capaz de explicaros lo que quiero hacer: Tengo un formulario con un campo 'descripcion' para que el usuario introduzca un ...
  #1 (permalink)  
Antiguo 13/03/2003, 10:33
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 22 años, 2 meses
Puntos: 0
Visualización de un campo texto

Vamos a ver si soy capaz de explicaros lo que quiero hacer:

Tengo un formulario con un campo 'descripcion' para que el usuario introduzca un texto largo, el cual, se guarda en el campo de la tabla correspondiente:

Supongamos que el usuario introduce lo siguiente:

Listado de alumnos:

1.- Ana María Vazquez Ruiz
2.- Jose López Martinez
3.- Antonio García García
4.- Luis Gómez Fernández

Pulsa enviar, y se graba en la bd.

A la hora de visualizar el texto introducido, saldrá así:

Listado de alumnos:1.- Ana María Vazquez Ruiz2.- Jose López Martinez3.- Antonio García García4.- Luis Gómez Fernández

La pregunta es: ¿cómo hago para que el texto se visualice en modo de listado?

La solución que encuentro es hacer tantos campos como hagan falta, pero el problema es que no sé los campos que en realidad van a hacer falta.

Muchas Gracias, espero que podáis ayudarme. Saludos,
  #2 (permalink)  
Antiguo 13/03/2003, 10:44
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 9 meses
Puntos: 5
Yo utilizo explode para este tipo de cosas...

Código PHP:
                        <ul>
                        <?
                        $servicios
=explode("#",$rsElcliente["servicios"]);
                        foreach (
$servicios as $servicio){
                        
$servicio=textohtml($servicio);
                        echo 
"<li class='articuloBody'>$servicio</li>\n";
                    }
                        
?>
                        </ul>
Obviamente le pongo un signo de # entre todas las opciones (sustituyo \n por #) al guardarlo en la BD

__________________
Manoloweb
  #3 (permalink)  
Antiguo 13/03/2003, 11:03
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 22 años, 2 meses
Puntos: 0
Pero entonces, ¿de qué manera se guarda en la base de datos? ¿cómo sabes que el usuario a pulsado enter?
  #4 (permalink)  
Antiguo 13/03/2003, 12:26
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 9 meses
Puntos: 5
Cada que el usuario presiona enter, se "guarda" en el string una secuencia "\n", aunque tu no la veas ahi está.

Puedes hacer algo como esto:

$tucadena = preg_replace("/\r\n|\n\r|\n|\r/", "#", $tucadena);

Y eso te cambiará todos los "enter" por #

Saludos
__________________
Manoloweb
  #5 (permalink)  
Antiguo 13/03/2003, 14:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Usa la funcion nl2br() a la hora de mostrar tus datos de la BD. Hay un mensaje en las FAQs y periodicamente hay alguien que lo vuelve a preguntar. Asi que si necesitas ejemplos, mira el manual o usa el buscador del foro (busca nl2br).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 18/03/2003, 10:32
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 22 años, 2 meses
Puntos: 0
otra manera de visualizar

Muchas Gracias a todos, la solución ha sido la funcion mencionada en el mensaje anterior.

Ahora quería haceros otra pregunta. Si añado al ejemplo anterior las notas de los alumnos, es decir:

Nombre Alumno Nota
1.- Ana Marquez 5
2.- Jose López 6

El listado me sale así:

Nombre Alumno Nota
1.- Ana Marquez 5
2.- Jose López 6

Existe alguna manera de arreglar esto?????. Es que, si existen más campos que desee visualizar, se puede formar el caos. Gracias.
  #7 (permalink)  
Antiguo 18/03/2003, 15:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Pues teniendo en cuenta que el textarea no esta pensado para manejar datos en forma de tabla, veo dificil la solucion. Es mas, imaginate que tu textarea tiene un ancho de 20 caracteres, y que el nombre ocupa 25 caracteres. ¿Que pasa? Pues que esos 5 caracteres salen al comienzo de la siguiente linea (o mas si es una palabra) y a continuacion un espacio y la nota.

Me temo que tendras que optar por la opcion de ir creando cajas de texto para cada campo, y luego filas para cada registro. Si es que lo que necesitas es mostrar los datos de forma tabular y permitir la edicion.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 19/03/2003, 02:45
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 22 años, 2 meses
Puntos: 0
Muchas Gracias, pero eso no es lo que me interesa, ya que no sé cuantos textfield me van a hacer falta.

Imagínate que quiero hacer una clasificación por clase de alumnos, pero no sé que cantidad de alumnos será el máximo. Una clase tendrá 10 alumnos, otra 30, otra 20, etc.

Me interesaría que directamente se entrase en un textfield y que los espacios que pusiese entre el nombre del alumno y su nota, aparecieran a la hora de visualizar. Pero bueno, si no se puede, es que no se puede.

De todas maneras, muchas gracias.

Saludos,
  #9 (permalink)  
Antiguo 19/03/2003, 07:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Hazte un formulario para ingresar esos X campos a tu BD .. llamalo cada vez que quieras ingresar datos ..

Ejemplo en un "popup" tienes el formulario .. metes el dato das a tu boton "enviar" de ese formulario y actulizas la ventana padre donde muestras los registros q tiene esa tabla q estas introducciendo datos .. Otra solución .. en un frameset .. Arriba tu formulario .. abajao tu pagina que muestras el listado de registros de la tabla q estas interactuando ..

Otras soluciones pasan por usar javascript (DHTML) para que dinamicamente vallas creando los campos (<input)) de cada registro q vas a introducir segun requieras de alguno mas .. cuando lo tengas todo OK .. le das al "submit" de esos datos ...

Y sobre todo recuerda que si trabajas con "navegadores" como cliente .. tienen sus limitaciones a la hora de interactuar con ellos .. Un navegador ya te habras dado cuenta que no es "Excell" por ejemplo ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 19/03/2003, 13:50
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 22 años, 2 meses
Puntos: 0
Muchas Gracias por tu respuesta, pero la verdad, es que tal y como me lo has explicado lo veo todo muy negro.

Tengo conocimientos básicos de php (muy básicos) y hay un montón de cosas que se me escapan.

Sé programar en Cobol y Visual Basic, pero claro, es completamente diferente.

Muchas gracias por tu ayuda, saludos.
  #11 (permalink)  
Antiguo 19/03/2003, 14:34
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Mecachis, pero haber dicho que metias todos los espacios!!! Entonces el problema es HTML. En los navegares cuando encuentran en el codigo HTML de una pagina varios ' ' seguidos (varios caracteres espacios) los muestran como uno solo (por ejemplo, mira el codigo fuente de esta pagina, veras en el codigo los espacios que pusiste en tus mensajes). Para esto tienes dos opciones:

1.- HTML: poner el texto dentro de tags de HTML que muestren todos los espacios. Por ejemplo <pre></pre>.

2.- PHP: utilizar str_replace() para sustituir los ' ' por la cadena &nbsp; que es como hay que expresar los espacios en HTML.

Creo que es mejor la opcion HTML.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 20/03/2003, 04:03
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 22 años, 2 meses
Puntos: 0
Gracias Josemi, he probado la opción de HTML (<pre></pre>) pero me aparece el texto desordenado y muy pequeño.

No sé cómo probar la otra opcion, (str_replace), ya que el texto ya tiene la funcion nl2br().

¿Qué puedo hacer?
  #13 (permalink)  
Antiguo 20/03/2003, 04:46
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 22 años, 2 meses
Puntos: 0
Lo que me pasa al utilizar el codigo HTML <pre></pre> es lo siguiente:

Si tengo introducido un pequeño listado y a continuación un texto, el listado sale perfecto pero el texto se me visualiza tal y como se ha introducido, por lo que la tabla se me alarga demasiado.



AY AY AY, ¿QUÉ HAGO?
  #14 (permalink)  
Antiguo 20/03/2003, 15:36
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Prueba:
Código PHP:
$texto=str_replace(' ','&nbsp;',$texto);
$texto=nl2br($texto);
echo 
$texto
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #15 (permalink)  
Antiguo 21/03/2003, 04:00
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 22 años, 2 meses
Puntos: 0
ESTO NO FUNCIONA

El código lo he puesto de la siguiente manera:

Código PHP:
$texto=str_replace(' ','$recuperado[descripcion];',$texto);
$texto=nl2br($texto);
echo 
$texto
Pues bien, no me visualiza nada de nada.



Me voy a volver loca con tanto php.
  #16 (permalink)  
Antiguo 21/03/2003, 14:56
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Paky, no te ofendas, pero ¿te has tomado la molestia de mirar en el manual oficial la sintaxis y el uso de str_replace()? Esta aqui: http://www.php.net/manual/es/function.str-replace.php . Si en alguna ocasion te comentan usar una funcion que no conoces, lo minimo que puedes hacer es leer el manual y mirar por ti mismo como usar la funcion. Si despues de mirar el manual y hacer pruebas no entiendes, pregunta por lo que no entiendes.

Sin animo de ofender, es que asi mas que parecer que quieres aprender, parece que quieres que te den el codigo hecho.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #17 (permalink)  
Antiguo 24/03/2003, 02:55
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 22 años, 2 meses
Puntos: 0
ya lo estuve mirando

No me ofendes Josemi, ya que sí que estuve mirando el manual, lo que pasa es que no sé cómo debo utilizar esta función. Por eso, prefiero que me pongan un ejemplo, para saber qué es lo que debo poner en cada sitio.

Lo único que deseo es llegar a casa sabiendo un poquito más de php.

Saludos,
  #18 (permalink)  
Antiguo 24/03/2003, 07:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pero .. paky .. si el ejemplo lo tienes en el mismo link que te dió josemi .. si, en el propio manual de PHP!!! (y en castellano)

$bodytag = str_replace ("%cuerpo%", "negro", "<body text=%cuerpo%>");

Pruebalo y "observa" que pasa .. Pero si lees la descripción no se donde tienes problemas????

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 22:28.