soumettre le formulaire à l'aide d'ajax
Je suis du développement d'une application (une sorte de réseau social pour mon université). J'ai besoin d'ajouter un commentaire (insérer une ligne dans une base de données spécifique). Pour ce faire, j'ai un formulaire HTML dans ma page html avec différents domaines. Au moment de soumettre je n'utilise pas l'action de la forme, mais j'utilise un javascript personnalisé fonction à élaborer un certain nombre de données avant de soumettre le formulaire.
function sendMyComment() {
var oForm = document.forms['addComment'];
var input_video_id = document.createElement("input");
var input_video_time = document.createElement("input");
input_video_id.setAttribute("type", "hidden");
input_video_id.setAttribute("name", "video_id");
input_video_id.setAttribute("id", "video_id");
input_video_id.setAttribute("value", document.getElementById('video_id').innerHTML);
input_video_time.setAttribute("type", "hidden");
input_video_time.setAttribute("name", "video_time");
input_video_time.setAttribute("id", "video_time");
input_video_time.setAttribute("value", document.getElementById('time').innerHTML);
oForm.appendChild(input_video_id);
oForm.appendChild(input_video_time);
document.forms['addComment'].submit();
}
La dernière ligne soumet le formulaire à la page correcte. Il fonctionne très bien. Mais je voudrais utiliser ajax pour envoyer le formulaire et je n'ai aucune idée de comment faire cela parce que je n'ai aucune idée de comment attraper la forme des valeurs d'entrée. quelqu'un peut m'aider?
OriginalL'auteur Alessio Melani | 2012-11-28
Vous devez vous connecter pour publier un commentaire.
Personne n'a réellement donné une pure
javascript
réponse (comme demandé par l'OP), si elle est ici:Dans votre cas:
bonne prise. Cela a été modifié à partir de code que j'ai fait usage, à un certain point, je pense que c'était déterminable comme paramètre de la fonction. Je suppose que je n'ai jamais changé une partie du nom de la fonction.
J'ai dû ajouter
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
pour que cela fonctionne correctement.oui, ça dépend beaucoup sur les données que vous obtenez de retour. Vous pourriez avoir à spécifier "application/json" si vous recevez des textes au format JSON par exemple.
OriginalL'auteur insaner
Ce sujet
OriginalL'auteur David Müller
Vous pouvez ajouter un onclick fonction de votre bouton envoyer, mais vous ne serez pas en mesure de soumettre votre fonction en appuyant sur entrée. Pour ma part, j'utilise ceci:
Espère que cela aide.
OriginalL'auteur pmrotule
@insaner méthode est bonne, cependant, vous avez à construire la chaîne de requête manuellement, ce qui est assez problématique et inutile. Voici une solution universelle qui parcourt chaque champ de formulaire et crée la chaîne de demande automatiquement:
Mise à jour
Voici une version alternative en utilisant de nouveaux aller chercher de l'API. Lit automatiquement les attributs de forme:
method
etaction
et s'empare de tous les champs à l'intérieur de la forme. Soutien à une seule dimension de la matrice de champs, commeemails[]
. Pourrait servir de solution universelle pour gérer facilement un grand nombre (peut-être dynamique) les formes avec une seule source de vérité - html.OriginalL'auteur Maciej Kwas
Je suggère d'utiliser jquery pour ce type d'exigence . Donner à ceci un essai
var working = false
ne fait rien sur son propre. Je suis en supposant que vous allez utiliser dans un conditionnelle pour empêcher plusieurs soumet.OriginalL'auteur Pit Digger
Il est beaucoup plus facile de simplement utiliser jQuery, puisque c'est juste une tâche pour l'université et vous n'avez pas besoin d'enregistrer le code.
Donc, votre code ressemblera à:
OriginalL'auteur Varvara Stepanova