Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Insert con Ajax

Estas en el tema de Insert con Ajax en el foro de Frameworks JS en Foros del Web. Hola a todos! Mi pregunta creo que es sencilla ( creo... ) se trata de hacer un insert mediante ajax. De hecho ya tengo algo ...
  #1 (permalink)  
Antiguo 19/02/2011, 07:23
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 2 meses
Puntos: 4
Insert con Ajax

Hola a todos! Mi pregunta creo que es sencilla ( creo... ) se trata de hacer un insert mediante ajax. De hecho ya tengo algo similar. Pero eran datos "pequeños" y los pasaba por "GET". Por ejemplo:

v_ajax.open("GET", "./pag2.php?p_tipo=1&p_1=2&p_2=3", true);

entonces, la página "pag2.php", recogía los valores y hacía el insert. Algo del estilo:

if ( $_GET["p_tipo"] == 1 )
{
$v_1 = $_GET["p_1"];
$v_2 = $_GET["p_2"];
insert into a(num1, num2) values($v_1, $v_2)
}

Lo que pasa que ahora, el dato que debo insertar, sale de un textarea... Y claro no le puedo pasar el contenido por la url, como hacía con "p_1=1" o "p_2=2". ¿Cómo tendría que hacerlo??? Que sería mediante "POST" en lugar de "GET"?? Es que lo he probado y no me ha funcionado...

Muchas gracias!
  #2 (permalink)  
Antiguo 19/02/2011, 20:55
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Insert con Ajax

no veo porque no puedes insertar un textarea por medio de GET no hay ningun problema en eso
puedes hacer algo asi

index.php
Código PHP:

<html>
<
head>
<
script type="text/javascript" src="ajax.js"></script>

</head>
<body>
<textarea name="comentario" id="comentario" cols="45" rows="5" onBlur="guardarDatos(this.form.comentario.value)" ></textarea>

<div id="resultado" > </div>
</body>
</html> 
ajax.js
Código HTML:
function objetoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function guardarDatos(comentario){
	
	divResultado1 = document.getElementById('resultado');

		ajax=objetoAjax();

		ajax.open("GET", "guardar.php?comentario="+comentario);
		ajax.onreadystatechange=function() {
			

			if (ajax.readyState==4) {
				//mostrar resultados
				divResultado1.innerHTML = "Datos Guardados";
				
				divResultado1.style.display="block";

			}
		}
		//como hacemos uso del metodo GET
		//colocamos null
		ajax.send(null);
}

ya el archivo guardar.php debes saber hacerlo tu
  #3 (permalink)  
Antiguo 20/02/2011, 07:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Insert con Ajax

Hola! Muchas gracias por contestar. Pero mi duda sería, cuando pones:

ajax.open("GET", "guardar.php?comentario="+comentario)

Ok, lo veo perfecto. Pero... tratándose de un textarea, pueden escribir un comentario grande. Imagina que escriben 1000 letras, ¿No sería demasiado grande para pasarlo mediante "GET"? ¿No hay ninguna manera que "guardar.php" pueda recuperar el dato directamente del textarea ( aunque venga de otra página ) algo del estilo getElementById("comentario")? Supongo que no... Otra posibilidad sería utilizar variables de sesión. ¿Sería muy descabellado hacerlo así?
  #4 (permalink)  
Antiguo 20/02/2011, 12:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Insert con Ajax

Hola:

Originalmente ajax no fué pensada para enviar datos sino "hacer peticiones", así que para una cantidad considerable de datos es mejor usar un formulario normal y el método post. Lo digo por experiencia.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 21/02/2011, 00:23
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Insert con Ajax

ciertamente podrias hacer una varible de session y probar, porque la verdad yo nunca he trbajando con grandes cantidades de letras en un textarea.

y tambien ten en cuenta lo que comenta caricatos que ya te dice que lo dice por experiencia propia
  #6 (permalink)  
Antiguo 21/02/2011, 04:54
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Insert con Ajax

Ok! Tenéis razón! Lo haré a la antigua esculea: formulario + post.

Muchas gracias a los dos!
  #7 (permalink)  
Antiguo 21/02/2011, 06:56
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Insert con Ajax

Pero entonces, me surje una duda. El problelma es que yo tengo un blog. Y la gente puede poner su opinion. Si lo hago mediante formulario + submit + post. Ok, me graba el comentario, pero si me hacen un F5, volverá a insertarse... Por eso el insert quería hacerlo externo. ¿Cómo hago pues para que con el F5 no me vuelva a insertar el mismo registro?
  #8 (permalink)  
Antiguo 21/02/2011, 08:39
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Insert con Ajax

Cita:
Iniciado por lemmy2011 Ver Mensaje
Pero entonces, me surje una duda. El problelma es que yo tengo un blog. Y la gente puede poner su opinion. Si lo hago mediante formulario + submit + post. Ok, me graba el comentario, pero si me hacen un F5, volverá a insertarse... Por eso el insert quería hacerlo externo. ¿Cómo hago pues para que con el F5 no me vuelva a insertar el mismo registro?
Hola:

Están esos métodos ya clásicos para evitar a los "dedos flojos", como los códigos captchas...

Fíjate que en sistemas sofisticados como estos foros se dan casos de duplicados, no solo por la F5 (que con un captcha bien programado podría evitarse), sino por las razones que sean.

Supongo que tu blog tendrá un sistema de gestión de comentarios...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 21/02/2011, 09:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Insert con Ajax

Gestión de comentarios? Me deprimes! :) no, no tengo nada de eso! Tengo un textarea, en el que el usuario escribe lo que le ha parecido el artículo. Valido eso sí que no escriba insultos, ni palabras con más de X letras, etc... vamos, validaciones a nivel que, dentro de lo posible, el texto que introduzcan sea algo sensato. Pero no hay ningún tipo de gestión. Ya había pensado en el tema del captcha... Esta opción me recarga la págona. Yo quería que, la parte del comentario, no afectase a la página en su totalidad. Es decir, un comentario nuevo, preferiá que no recargase toda la página, sino sólo la sección del comentario. Pero, si tu me dices que ves más robusto el método tradicional, incluyendo el captcha. Así lo haré, estña claro que sabes de lo que hablas... Cuando lo tenga os cuento qué tal!

Etiquetas: ajax, insert
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 23:14.