Foros del Web » Programando para Internet » Javascript »

Text area sin botón

Estas en el tema de Text area sin botón en el foro de Javascript en Foros del Web. Hola quisiera saber si mediante algún script o similar puedo capturar lo que se escribe en un text area sin pulsar el botón de enviar, ...
  #1 (permalink)  
Antiguo 29/04/2009, 02:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 33
Antigüedad: 15 años, 8 meses
Puntos: 0
De acuerdo Text area sin botón

Hola quisiera saber si mediante algún script o similar puedo capturar lo que se escribe en un text area sin pulsar el botón de enviar, o sea que según lo voy escribiendo lo recoja una variable en php.

Saludos y Gracias
  #2 (permalink)  
Antiguo 29/04/2009, 02:27
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 8 meses
Puntos: 41
Respuesta: Text area sin botón

La captura de los datos y el submit() sin un botón, deberás hacerlos con Javascript (o Ajax). Luego recoges esos datos en PHP como con cualquier formulario normal.

Muevo este thread al foro de JavaScript, donde estará mejor ubicado y seguramente encontrarás la ayuda que necesitas.

Saludos,
  #3 (permalink)  
Antiguo 29/04/2009, 03:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Text area sin botón

Hola:

Con javascript puedes usar el evento onkeypress, u onkeyup u onkeydown, y consultar por el value o innerHTML del textarea, pero la variable que puede recibirla será javascript... y volcar por medio del método submit (a un iframe para no perder el foco) o vía Ajax, por cada pulsación sería en mi opinión un gasto de recursos excesivo... tal vez sea mejor tratar ese contenido con javascript, o si sigues con la idea de usar variables php, usar una variable de sesión y el evento onchange...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 29/04/2009, 04:45
Avatar de jeybi  
Fecha de Ingreso: julio-2008
Ubicación: Mexico
Mensajes: 130
Antigüedad: 15 años, 10 meses
Puntos: 10
Respuesta: Text area sin botón

No necesariamente tiene que representar un gasto excesivo de recursos. Usando todos los eventos de teclas sin más, y enviando/recibiendo sin algún método inteligente, sí seria un desperdicio.

Generalmente, para crear las llamadas "sugerencias de búsqueda" (usando inputs de texto), se suele implementar una caché con los resultados devuelto por el servidor, por ejemplo si escribo "hola", en la cache tendré algo como (suponiendo que hago un request en cada letra) 'h', 'ho', 'hol', 'hola', con su respectivo resultado.

Así, si el usuario borra la ultima 'a', la función que envía el request detecta el termino 'hol' en la caché, y muestra el resultado almacenado.

Obviamente puede que lo que tu busques sea diferente, y puedes utilizar varios métodos o combinación de ellos, pj: retraso del envío, caché, compresión de los datos, etc. En general, siempre es posible evitar sobrecargar el servidor.

Saludos.
  #5 (permalink)  
Antiguo 29/04/2009, 05:51
 
Fecha de Ingreso: septiembre-2008
Mensajes: 33
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Text area sin botón

Gracias a los dos, pero no entiendo mucho del tema, no podriais ponerme algún ej orientativo o decirme en concreto que es lo que tengo que buscar y con eso a ver si encuentro algo.

Saludos y gracias
  #6 (permalink)  
Antiguo 29/04/2009, 07:33
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Text area sin botón

Hola:

Como he comentado antes, cuando pasa algo en el navegador no es posible hacer nada con variables php, entonces o te decantas por javascript, o o implementas un envío a un iframe para el procesamiento, o implementas algo Ajax, que más o menos es lo mismo..., pero creo que dependerá de lo que quieras... tal vez sea mejor que nos digas qué resultados quieres...

jeybi: en primer lugar quiero darte la enhorabuena por tu participación en el reto css... quería participar con comentarios, pero se me vino el tiempo encima, y todavía lo tengo pendienta...

Tus argumentos son buenos, pero los resultados devueltos por la caché pueden ser rápidos si existe esa caché, pero con tu propio ejemplo... la búsqueda a partir de la primera letra: "h" tardará mucho más en devolver una respuesta que la de las 2 primeras... y aunque se conozca la segunda, el servidor estará ocupado con la primera...lo habrás controlado con los sistemas existentes... nunca dan una respuesta en las primera 5 o 6 letras... a lo que me refería es en no usar esa opción con datos menores de 4 o 5 letras... bueno... son sólo ideas...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 29/04/2009, 08:25
 
Fecha de Ingreso: septiembre-2008
Mensajes: 33
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Text area sin botón

Pues verás tengo un calendario en ajax que me encontre por internet y me funciona de maravilla cada vez que cliqueas sobre un determinado día este se graba en una base de datos, pero necesito que junto con esa fecha me grabe también otros datos adiccionales que el usuario debe de introducir.
Código PHP:
if (isset($_GET['ajax'])) {
    
$input['ajax'] = mysql_escape_string($_GET['ajax']);
} else {
    
$input['ajax'] = "";
}
if (
$input['ajax']=="1") {

    
$field['ajax_calendar_username'] = mysql_escape_string($_GET['u']);
    
$field['ajax_calendar_date'] = mysql_escape_string($_GET['d']);

    if (
$field['ajax_calendar_date']!="") {

        
$field['ajax_calendar_status'] = mysql_escape_string($_GET['s']);

        if (
$field['ajax_calendar_status']=="1") {
            
$query "INSERT INTO oc_calendar (start_date, end_date, username) VALUES ('$field[ajax_calendar_date] 00:01', '$field[ajax_calendar_date] 23:59', '$field[ajax_calendar_username]');";
            
$response "Event added.";
        } else {
            
$query "DELETE FROM oc_calendar WHERE start_date LIKE '$field[ajax_calendar_date]%' AND username = '$field[ajax_calendar_username]';";
            
$response "Event removed.";
    }

    print 
"<span class=\"text\">".$response."</span>";
    exit;

}    
}
function 
calendar //(aquí seria la llamada al calendario, no lo pongo pq es demasiado largo) 
y necesito que junto al INSERT INTO oc_calendar ... también me grabe

Código HTML:
<form method="post" action="<?$PHP_SELF?>" name="formData">
<input type="text" name="nombre" value="">
<input type="submit" value="Insertar">
</table> 
el value del campo nombre que el usuario introduzca, espero haberme explicado bien.

Gracias
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 19:29.