Obtener dinero con AdFly

viernes, 7 de enero de 2011

Enviar HREF vía POST con JavaScript

Quién no ha querido enviar el contenido de formulario vía POST con HREF??. Sabemos que sólo se puede con GET, pero hay una forma de hacerlo en JavaScript, cuando tenemos un formulario en método GET y lo queremos enviar por POST:

/* Código en JavaScript*/
/* PRIMERA FUNCIÓN: 
 * Recorre el formulario, crea un arreglo con los campos y lo pasa a la función post 
 */
function enviarPost(URL, form)
{
  var campos = new Array();
  var obj;
  for(var i=0; i< document.getElementById(form).elements.length;i++){
    obj = document.getElementById(form).elements[i];
    alert(obj.value);
    campos[obj.name] = obj.value;
  }
  post(URL, campos);
}
/* SEGUNDA FUNCIÓN:
 * Crea un formulario ficticio y lo envía por POST 
 */
function post(URL, PARAMS) {
  var temp=document.createElement("form");
  temp.action=URL;
// Le agrega los atributos y el método de envío
  temp.method="POST";
  temp.style.display="none";
// Le agrega los campos
  for(var x in PARAMS) {
    var opt=document.createElement("textarea");
    opt.name=x;
    opt.value=PARAMS[x];
    temp.appendChild(opt);
  }
  document.body.appendChild(temp);
// Envía el submit
  temp.submit();
  return temp;
}

<!--Código en HTML-->
<FORM name="miform" id="miform" method="GET" action="http://www.google.com">
<INPUT type="text" id="campo1" name="campo1" value="valor1"> </input>
<INPUT type="text" id="campo2" name="campo2" value="valor2"> </input>
</FORM>


<a HREF="javascript:;" onclick="enviarPost( 
'pagina.php', 'miform' )">IR</a>


Por otra parte, como me acotó mi amigo Gerardo Curiel, también se puede de esta forma, utilizando JQuery. En este caso el formulario debe comenzar teniendo el método POST.

Descargándolo desde aquí: http://code.jquery.com/jquery-1.4.4.js


/*Código en JavaScript*/
/*
 * 1. Captas el evento Click en el anchor(el a)
 * 2. Invocas .submit en el form 
 */

$(document).ready(function(){
$('#mianchor').click(function(evento){
$('#miform').submit();
    });
});

<!--Código en HTML-->
<!--Agregamos JQuery al documento-->
<head>
<script language="JavaScript" src ="jquery-1.4.4.js"> </script>
</head>
...
<!--Declaramos el formulario, con el método y la acción-->
<form method="POST" action="pagina.php" id="miform">
<input type="texto" name="texto" value="valor"/>
</form>
<!--El anchor ya tiene el evento onclick declarado con JQuery-->
<a HREF="javascript:;" id="mianchor">IR</a>

No hay comentarios:

Publicar un comentario