Maison >interface Web >js tutoriel >Analyse d'exemples de données de formulaire de soumission AJAX
Cet article présente principalement la méthode de soumission AJAX des données du formulaire. L'exemple analyse le principe et les compétences de mise en œuvre des appels Ajax. Les amis dans le besoin peuvent s'y référer
L'exemple de cet article décrit la méthode de soumission. Soumission AJAX des données du formulaire. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
var TINY={}; TINY.ajax = function() { return { /** * @param string type 请求类型,post,get(目前只实现了这两种) * @param strng url 请求的地址 * @param object data 当使用post请求时的请求参数,ex: data=> {name:'adam'} * @param function callback 成功返回时的回调函数 */ call : function(type, url, data, callback) { var xhr = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject('Microsoft.XMLHTTP');// for ie xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { callback.call(this, xhr.responseText); } } switch (type.toUpperCase()) { case 'POST': xhr.open('POST', url, true); // 这句比较重要 xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); var formData = ''; for ( var i in data) { formData += i + '=' + data[i] + '&'; } xhr.send(formData); break; default: xhr.open('GET', url, true); xhr.send(null) break; } } } }();
Parcourez chaque élément du formulaire et organisez les valeurs des paramètres au format JSON
Un traitement spécial est effectué ici pour la case à cocher CheckBox La valeur. reçues en arrière-plan sont toutes des valeurs complexes. La valeur du chapiteau est concaténée avec des virgules
function serialForm(form){ var e = form.elements; var ht = new Array(); var checkbox = new Array(); for(var i = 0; i < e.length; i++) { if(e[i].type=="checkbox"){ if(e[i].checked){ if(checkbox[e[i].name] != null) checkbox[e[i].name].push(e[i].value); else checkbox[e[i].name] = [e[i].value]; } } else { ht.push(e[i].name+":'"+e[i].value+"'"); ht.push(","); } } for (var ddd in checkbox ){ ht.push(ddd + ":'" + checkbox[ddd] + "'"); ht.push(","); } ht.push("nt:0"); return eval('({' + ht.join("") + '})'); };
Appel AJAX :
TINY.ajax.call('post', 'listfrom.do', serialForm(frm), function(data){ var ret = eval('('+data+')'); if(ret.errid==0){ alert(ret.text); window.location.reload(); } else{ alert(ret.text); } });
En ce qui concerne les données au format JSON renvoyées par le serveur, les formats suivants sont pris en charge
String str = "[{\"mailAddr\":\"edison@163.com\"}, {\"mailAddr\":\"jay@263.com\"}]"; response.setContentType("application/json;charset=UTF-8"); response.getWriter().write(str);
Appel frontal
function show(){ $.post("listmail.do", {"name" : "John"}, function(data){ for(var i = 0; i < data.length; i++){ alert(data[i].mailAddr); } }, "json"); }
Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde à l'avenir.
Articles connexes :
Une brève analyse de l'utilisation d'Ajax dans Asp.net MVC
JQuery Ajax génère dynamiquement des tables
JSONP pour requête interdomaine AJAX pour obtenir des données JSON
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!