views:

218

answers:

5

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";
+1  A: 

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.

Will Bickford
+4  A: 

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!

Björn
+1 for code examples. You might consider including a link to MooTools.
Will Bickford
+5  A: 

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();
Guffa
Yes, but before sending the form, I want `alert()` the user to conform (yes or no) sending the form.
Johan
That's easy, just use a confirmation in an if statement: if (window.confirm('Vill du verkligen radera användaren?')) { post form... }
Guffa
+2  A: 

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();   
}
giorgian
A: 

You can use the XMLHTTPRequest() object.

http://www.w3schools.com/XML/xml%5Fhttp.asp

Joel