感谢StackOverflow的帮助,我能够验证并向不同的操作页面提交两个表单。我需要根据提交的表单更改成功函数。
这是我的javascript:
$("form").each(function() {
$(this).validate({
submitHandler: function(form) {
var $form=$(this)
var data= $form.serialize()
$.ajax({
type : 'POST',
url : $(form).attr('action'),
data : $(form).serialize(),
cache : false,
dataType: 'text',
success: function(data){
},
});
return false; // Temporary
}
});
这是表单1的成功:
$("#e1").prepend(data);
var magnificPopup = $.magnificPopup.instance;
magnificPopup.close();
这是表格2的成功:
$("#messageTran").html(data);
$("#messageTran").hide();
$("#messageTran").fadeIn(1500);
实现这一目标的最佳途径是什么?我是javascript的新手,但未能找到答案。我尝试使用if else语句传递一个form属性,但没有运气。先感谢您。
答案 0 :(得分:2)
如您所知,每个操作页面都会将echo
信息返回到主页面,该主页面位于AJAX success:
功能中。
您可以添加"标题"返回标识哪个操作页面正在发送数据的返回数据,然后使用IF / ELSE结构执行相应的操作。
例如,操作页面first.php
可以发送此文本:
echo '1~This is from first.php';
在成功功能中,您可以剥离"标题"字符:
var hh = data.slice(0,1);
var therest = data.slice(2);
if (hh == 1) {
$("#e1").prepend(therest);
var magnificPopup = $.magnificPopup.instance;
magnificPopup.close();
} else {
$("#messageTran").html(therest);
$("#messageTran").hide();
$("#messageTran").fadeIn(1500);
}
回答一个问题,重新使用JSON而不是手动解析的字符串:
当然可以使用JSON,原理相同。但在简明的答案中解释更具挑战性。对于JSON初学者来说,一个比使用上述方法更大的挑战 - 至少,它一开始对我来说肯定是。由于原理是相同的,这就是我选择传达这个概念的方式。
对于那些寻求使用JSON的演示的人,我可以推荐这些来源:
http://www.fourfront.us/blog/store-html-table-data-to-javascript-array
http://blog.kevinchisholm.com/javascript/associative-arrays-in-javascript
http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/