Foros del Web » Creando para Internet » HTML »

Campo de formulario no se envia cuando hay un guión largo

Estas en el tema de Campo de formulario no se envia cuando hay un guión largo en el foro de HTML en Foros del Web. Hola: Recurro a vosotros porque no veo lógica a lo que está pasando: Resulta que tengo un formulario. Pues en un textarea tenía el problema ...
  #1 (permalink)  
Antiguo 27/01/2011, 07:23
 
Fecha de Ingreso: abril-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Campo de formulario no se envia cuando hay un guión largo

Hola:

Recurro a vosotros porque no veo lógica a lo que está pasando:

Resulta que tengo un formulario. Pues en un textarea tenía el problema que había un texto específico que cuando lo escribía, éste no se enviaba por POST. Al investigar un poco, he descubierto que ocurre cuando se pega un texto del MS Office con los guiones largos que éste escribe automáticamente. Si el campo contiene ese guión especial, cuando compruebo con print_r la variable $_POST veo que ese campo del formulario no se envía.

Alguien sabe por qué y cómo solucionarlo? La verdad es que tampoco sé cómo llamar a ese caracter para reemplazarlo con Javascript antes de que el formulario sea enviado.

Muchas gracias!!!
  #2 (permalink)  
Antiguo 27/01/2011, 12:28
 
Fecha de Ingreso: enero-2011
Mensajes: 45
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Campo de formulario no se envia cuando hay un guión largo

Hola,
por lo que comentas, me da que pueda ser un problema de juego de caracteres. En tu caso, estás usando un juego de caracteres en el que no existe conversión para dicho guión. En el caso de programación web, suele ser recomendable utilizar siempre el juego de caracteres utf-8.

De todos modos, esto es lo que intuyo del comentario que pones, aunque estaría bien tener la página entera y el texto word que intentas pegar. Para salir de dudas.

Espero que te haya servido

---
http://www.iriazabal.com
  #3 (permalink)  
Antiguo 28/01/2011, 02:48
 
Fecha de Ingreso: abril-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: Campo de formulario no se envia cuando hay un guión largo

Hola fertest:

Antes que nada, gracias por la ayuda.

La cuestión no es esa, ya que en otro campo se ponen nombres de personas y hay nombres no españoles (por ejemplo turcos los cuales tienen caracteres extraños como una i sin punto) y, en el peor de los casos, se envía la cadena pero transformando esos caracteres extraños a otros más extraños aún. La cuestión es que cuando hago un print_r($_POST); veo que el campo donde estaba el guión ese no se ha enviado. No existe. Podría igual solucionarlo intentando saber la codificación ASCII de ese carácter y reemplazándolo antes de enviar el formulario, pero me gustaría saber el motivo de ese error para poder evitarlo en el futuro.
  #4 (permalink)  
Antiguo 28/01/2011, 03:35
 
Fecha de Ingreso: enero-2011
Mensajes: 45
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Campo de formulario no se envia cuando hay un guión largo

Entiendo lo que dices, aunque sería interesante tener el ejemplo para poder reproducir el problema y saber exactamente cuál es el error aquí.

Como ya te comentaba, yo había pensado en un problema de juego de caracteres porque, dependiendo del que uses, puede encontrar conversión para algunos caracteres, pero no para otros. Por lo que habías comentado, ocurre que si no puede interpretar el contenido, no puede enviar el campo.

Lo dicho, para poder saber mas, sería útil tener el html completo y el word con el texto, para hacer el copiado exactamente como lo haces tú ahí.

Salu2
  #5 (permalink)  
Antiguo 28/01/2011, 04:41
 
Fecha de Ingreso: abril-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: Campo de formulario no se envia cuando hay un guión largo

Bueno, ya he adelantado algo:

Resulta que sí que es la codificación. Si genero la página en UTF-8 ya se sube el campo pero lo hace mal (aparte de modificar algunos textos que aparecen en la página). De todas maneras, he identificado que el carácter Unicode del guión que pone el MS Office es el 8211. Ahora intento hacer un .replace(String.fromCharCode(8211),'-');... pero no lo cambia! Se queda el mismo guión...

Os mantendré informados.

Actualización: En Chrome parece funcionar, pero la página, por motivos que no quiero explicar, la tengo que hacer compatible con IE 6, que es el que falla.

Es más, si hago esto:


Código:
		txt=document.form_import.elements.fDescr.innerHTML;
		txtL=txt.length;
		var newTxt='';
		for(i=0;i<txtL;i++){
			if(txt.charCodeAt(i)==8211){
				txt=txt.slice(0,i)+'-'+txt.slice(i+1,txtL);
			
			}
		}*/
		//document.form_import.elements.fDescr.innerHTML=txt;

Funciona pero me quita los retornos de carro.

Última edición por jaldepiqui; 28/01/2011 a las 05:14

Etiquetas: guión, post, formulario, campos
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:58.