7

Is it possible to send post-variables with javascript? I want id to be sent with post, not get.

window.location.href="hanteraTaBortAnvandare.php?id=10";

5 Answers 5

16

The simplest way is to just have a form in your page:

<form method="POST" action="hanteraTaBortAnvandare.php" id="DeleteUserForm">
<input type="hidden" name="id" value="10" />
</form>

Then you just post the form:

document.getElementById("DeleteUserForm").submit();
3
  • Yes, but before sending the form, I want alert() the user to conform (yes or no) sending the form.
    – Johan
    Commented Aug 29, 2009 at 9:21
  • 2
    That's easy, just use a confirmation in an if statement: if (window.confirm('Vill du verkligen radera användaren?')) { post form... }
    – Guffa
    Commented Aug 29, 2009 at 9:49
  • Please accept the answer if it solved your issue. Commented Feb 24, 2021 at 15:50
15

You can use a form and then document.getElementById('id_of_the_form').submit();

The form doesn't need to be wrote as plain HTML: you can create it dinamically:

     function postIt()   {
        form = document.createElement('form');
        form.setAttribute('method', 'POST');
        form.setAttribute('action', 'someURL');
        myvar = document.createElement('input');
        myvar.setAttribute('name', 'somename');
        myvar.setAttribute('type', 'hidden');
        myvar.setAttribute('value', 'somevalue');
        form.appendChild(myvar);
        document.body.appendChild(form);
        form.submit();   
}
10

You can do it with an Ajax-request (or use hidden forms) - in that case;

MooTools example:

new Request({
    url: 'hanteraTaBortAnvandare.php',
    method: 'post',
    data: {
        'id': '10'
    },
    onComplete: function(response) {
        alert(response);
    }
});

jQuery example:

$.ajax({
    type: 'post',
    url: 'hanteraTaBortAnvandare.php',
    data: 'id=10',
    success: function(response) {
        alert(response);
    }
});

Of course you could do this without external libraries, but they simplify alot!

1
  • +1 for code examples. You might consider including a link to MooTools. Commented Aug 29, 2009 at 9:15
1

You can submit form data via JavaScript but not using window.location.href. Changing the URL location is always going to issue a GET.

You'll need to get a reference to your form from the DOM and then issue a submit() call to it.

1

You can use the XMLHTTPRequest() object.

2

Not the answer you're looking for? Browse other questions tagged or ask your own question.