2009-08-29 9 views

Répondre

1

Vous pouvez soumettre des données de formulaire via JavaScript sans utiliser window.location.href. Changer l'emplacement de l'URL va toujours émettre un GET.

Vous devrez obtenir une référence à votre formulaire à partir du DOM et lui envoyer un appel submit().

8

Vous pouvez le faire avec une requête Ajax (ou utiliser des formulaires cachés) - dans ce cas;

MooTools exemple:

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

jQuery exemple:

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

Bien sûr, vous pouvez le faire sans bibliothèques externes, mais ils simplifient beaucoup!

+0

+1 pour les exemples de code. Vous pourriez envisager d'inclure un lien vers MooTools. –

14

La façon la plus simple est d'avoir juste une forme dans votre page:

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

Ensuite, vous postez simplement la forme:

document.getElementById("DeleteUserForm").submit(); 
+0

Oui, mais avant d'envoyer le formulaire, je veux 'alert()' l'utilisateur se conforme (oui ou non) à l'envoi du formulaire. – Johan

+2

C'est facile, il suffit d'utiliser une confirmation dans une instruction if: if (window.confirm ('Vill du verkligen radera användaren?')) {Post form ...} – Guffa

+0

Cela devrait être la réponse. –

9

Vous pouvez utiliser un formulaire, puis document.getElementById('id_of_the_form').submit();

Le formulaire n'a pas besoin d'être écrit en langage HTML: vous pouvez le créer de façon dinamique:

 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(); 
} 
1

Vous pouvez utiliser le XMLHTTPRequest() object.

+1

Veuillez ne pas fournir de références "w3fools" (s'il vous plaît google it), leur formulaire fermé (type non wiki) ne fournit pas de connaissances de qualité. – Marecky

+0

Autre lien: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest –

Questions connexes