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);


4 Comentarios en “Como enviar campos de un formulario por medio de POST y utilizando Dojo (dojo.xhrPost)…”

  1. Roylan | 18/08/2009 a las 07:44:43

    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

  2. sergio | 19/08/2009 a las 07:01:54

    sería lo mismo… pero al inicio de entrar a la función tendrías que poder un linea de respues por ejemplo…

    1
    2
    3
    4
    5
    6
    7
    8
    
     
    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 :)

  3. Roylan | 19/08/2009 a las 07:36:03

    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

  4. Roylan | 22/08/2009 a las 08:10:57

    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.

Dejar un comentario

http://www.wikio.es BlogESfera - Directorio de Blogs Hispanos blogarama - the blog directory Mi Ping en TotalPing.com
Internet blogs Programming Blogs - Blog Catalog Blog Directory Internet blogs Buzzear (ES) Publicidad por tu blog con Boosterblog directorio de blogs
Agregar Web - Directorio de webs Directorio webs Directorio Web
Anuncios Gratis Blog Directory Technology Blogs - Blog Rankings