banniere

Tag-Archives pour « post »

mardi 18 novembre 2008 | Auteur :

Je pense que certains seront friands de ce genre de script, j’ai donc décidé de céder au public une part de mon médiocre génie !! Avant de comprendre le code, il faut piger l’astuce… Explications : On créé dynamiquement un formulaire avec JavaScript, on l’affiche en bas de la page (sinon ça ne marche pas, sont pas si cons les navigateurs…) puis on le submit dynamiquement une fois qu’il a été généré.

Avec jQuery

jQuery propose d’envoyer les données POST en AJAX, ce qui fait que vous pouvez carrément soumettre un formulaire sans quitter la page en cours :

jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

Voir la doc jQuery.post

Avec Prototype

function openWithPostData(page,data)
{
    var form = new Element('form',{action:page,method:'post'});
    for (var n in data)
    {
        form.appendChild(new Element('input',{
            type:'hidden',
            name:n,
            value:data[n]}));
    }
    $$('body')[0].appendChild(form);
    form.submit();
}

Petits exemples d’application :

var data = {};
data.lang             = 'fr';
data.IDP              = 24;
data['acteur']        = 'Rocky';
data[prefixe + 'tel'] = '0421564878';
 
openWithPostData('index.php',data);
 
// OU tout simplement
 
openWithPostData('index.php',{lang:'fr',IDP:24});

En standalone : proposé par HugoPoi

function openWithPostData(page,data)
{
    var form = document.createElement('form');
    form.setAttribute('action', page);
    form.setAttribute('method', 'post');
    for (var n in data)
    {
        var inputvar = document.createElement('input');
        inputvar.setAttribute('type', 'hidden');
        inputvar.setAttribute('name', n);
        inputvar.setAttribute('value', data[n]);
        form.appendChild(inputvar);
    }
    document.body.appendChild(form);
    form.submit();
}
Catégories : Informatique  | Tags : , , ,  | 5 commentaire