Foros del Web » Programando para Internet » PHP »

Eliminar "intro" del final de una cadena

Estas en el tema de Eliminar "intro" del final de una cadena en el foro de PHP en Foros del Web. Muy buenas. En la web que estoy desarrollando tengo la opción de que los usuarios puedan editar sus datos personales. Para ello, tengo un input ...
  #1 (permalink)  
Antiguo 07/02/2014, 21:17
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 9 meses
Puntos: 1
Eliminar "intro" del final de una cadena

Muy buenas. En la web que estoy desarrollando tengo la opción de que los usuarios puedan editar sus datos personales. Para ello, tengo un input text para cada apartado. Cuando el usuario pulsa un botón de editar se activa el input correspondiente y cuando presiona la tecla intro en ese input se envía por ajax a un script que modifica el apartado correspondiente en la BD. Hasta aquí todo correcto, el problema es que la BD almacena el carácter "intro", de forma que la siguiente vez que se quiera editar ese campo, en el input aparece el campo modificado pero al presionar la techa retroceso (para borrar un carácter), no hace nada porque, supongo, lo que se borra es ese carácter del final de la cadena.

En un caso extremo que he probado, al editar 10 veces el campo sin modificar el contenido, simplemente pulsando intro, la undécima vez que se quiera modificar el contenido hay que presionar 11 veces la tecla retroceso para que se elimine el primer carácter visible de la cadena.

He probado con la función de php trim antes del UPDATE en la tabla, pero no funciona.
¿Alguna idea?
  #2 (permalink)  
Antiguo 07/02/2014, 21:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Eliminar "intro" del final de una cadena

Pues trim() sirve exactamente para eso, mira:
Código PHP:
Ver original
  1. echo trim('
  2.  
  3.  
  4. a
  5.  
  6.  
  7.  
  8. '); // a

Si no te sirve será porque algo haces mal, es difícil adivinar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/02/2014, 21:43
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Eliminar "intro" del final de una cadena

Ya sé que sirva para eso, por eso me extraña que no funcione. Dejo el trozo de código que uso.

Código Javascript:
Ver original
  1. $('#input_nombre').keyup(function(e) {
  2.     if (e.keyCode == 13) {
  3.         $("#gif_load").css("display","block");
  4.         var parametros = {
  5.             "iduser" : $("#iduser").val(),
  6.             "texto" : $(this).val()
  7.         };
  8.         $.ajax({
  9.             type: "POST",
  10.             data: parametros,
  11.             url: 'editarNombre.php',
  12.             success: function(data) {
  13.                 // Codigo en caso de exito
  14.             },
  15.             error: function(e) {
  16.                 // Codigo en caso de error
  17.             }
  18.         });
  19.     }
  20. });

Y en el php inserto esto:

Código PHP:
Ver original
  1. $nuevo_nombre = mysql_real_escape_string(htmlentities((trim($_POST["texto"]))));

Pero ni idea de que es lo que falla. Puede ser que no sea \n lo que se almacena al final de la cadena y sea otra cosa, viendo que trim no lo elimina, pero no sé que puede ser.
  #4 (permalink)  
Antiguo 07/02/2014, 21:51
 
Fecha de Ingreso: junio-2012
Mensajes: 147
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Eliminar "intro" del final de una cadena

¿Podría ser esto? Cuando el usuario pulsa el botón de editar hago visible el input (que no lo está de forma normal), pongo el foco y llevo el curso al final de la cadena simulando presionar la tecla "fin".

Código Javascript:
Ver original
  1. var e = jQuery.Event("keyup");
  2. e.which = 17;
  3. var txt = $("#input_nombre_wrapper").find("span").html(); // Esto es un span que contiene el nombre del usuario, lo que se ve de forma natural.
  4. $("#input_nombre").val(txt + String.fromCharCode(e.which));

Pero pensaba que al no ser un caracter imprimible no lo tomaría como tal al borrar con "retroceso". Si fuera esto, ¿hay alguna función similar a trim para javascript?

Etiquetas: cadena, final, intro, tabla, usuarios
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 00:14.