Como enviar campos de un formulario por medio de POST y utilizando Dojo (dojo.xhrPost)…
Ajax 23 de February del 2009
Para poder enviar los valores de campos de un formulario por medio del método post es muy fácil prácticamente en cualquier lenguaje, pero si queremos que la página no se recargue y que el proceso sea trasparente para el usuario, podemos utilizar una librería muy buena y que está en constante evolución llamada DOJO.
Con sólo declarar en la cabecera de nuestra página la librería siguiente:
1 | <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dojo/dojo.xd.js"></script> |
Y el siguiente método es el que yo utilizó:
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var responseId = dojo.byId("Message"); var argsSend = { // se pueden enviar solo algunos datos // content: {"Nombre":dojo.byId("id del campo").value}, // o todo el formulario form: 'nombre del form', url: "a donde van los valores", handleAs: "text", // muy importante: es el tipo de respuesta que se va a recibir load: function(response){ responseId.innerHTML = response; }, error: function(response){ responseId.innerHTML = "ERROR"; }, timeout: 500, }; dojo.xhrPost(argsSend); |

Sobre mí









Hola!!! el pos esta muy bueno, estoy buscando la forma de poder mostrar un mensaje mientas se envian los datos al servidor….
Podrias dejar algun comenmtario al respecto
sería lo mismo… pero al inicio de entrar a la función tendrías que poder un linea de respues por ejemplo…
var responseId = dojo.byId("Message"); responseId.innerHTML = "cargando..."; // o podrías cargar una imagen... y listo!!!! este texto saldría al inicio... var argsSend = { . . . }si tienes más dudas no tudes en decirme
Hola Amigo
Muchisimas gracias por la respuesta, ahora mismo no estoy en el trabajo pero rapidamente cuando llegue lo pruebo y te comento… Llevo varios dias intentando hacer esto
NOTA: Intente enviarte por email pero me reboto.
Salu2
Roylan
Hola Amigo!!!
Todo funciono muy bien, lo que hice fue una funcion que muestre un al inicio del pedido y que despues lo oculte cual finalice, asi:
function enviar(){
show_loader();
dojo.xhrPost({
url: ‘/accounts/login/’,
sync: true,
load: helloCallback,
error: helloError,
form: ‘loginForm’
});
hide_loader();
}
function show_loader(){
var responseId = dojo.byId(“cargando”);
dojo.style(responseId, {
“display”: “block”,
“opacity”: 0.5,
“border”: “1px solid black”,
})
}
function hide_loader(){
var responseId = dojo.byId(“cargando”);
dojo.style(responseId, {
“display”: “none”,
})
}
Quizas no es la forma mas profecional, pero a mi me funciono.