我想提交一个表单而不刷新页面,并且我有这个表单:
<form method="post" action="user-add.php" id="user-add-form">
<input type="text" id="username" name="username" maxlength="15">
<button type="submit" name="add_user" class="btn btn-primary" id="user-add-submit">Add user</button>
</form>
和这个jquery函数(使用jquery验证插件):
submitHandler: function() {
$('#user-add-submit').button('loading');
var post = $('#user-add-form').serialize();
var action = $('#user-add-form').attr('action');
$("#message").slideUp(350, function () {
$('#message').hide();
$.post(action, post, function (data) {
$('#message').html(data);
$('#message').slideDown('slow');
if (data.match('success') !== null) {
$('#user-add-form input').val('');
$('#user-add-submit').button('reset');
} else {
$('#user-add-submit').button('reset');
}
});
});
}
但是我的问题是,该脚本可以使用什么样的user-add.php?
参考方案
您的回调函数本身会回答此问题:
function (data) {
$('#message').html(data); // #1
$('#message').slideDown('slow');
if (data.match('success') !== null) { // #2
$('#user-add-form input').val('');
$('#user-add-submit').button('reset');
} else {
$('#user-add-submit').button('reset');
}
}
它必须返回HTML,因为结果直接进入DOM(#1)
HTML必须包含(或不包含)区分大小写的子字符串“ success”,具体取决于操作的结束方式(#2)
如果我们假设该函数将不会被修改,则上述成立。但是修改功能以使其对计算机更友好是一个好主意。您可以改为返回一些如下所示的JSON:
{
html: "the HTML for your page goes here",
successful: true
}
html
是您要显示的内容,successful
供内部使用。这样,您就不必将字符串"success"
与确定操作是否确实成功相结合。使用此方案,您的回调将如下所示:
function (json) {
$('#message').html(json.html); // #1
$('#message').slideDown('slow');
if (json.successful) {
$('#user-add-form input').val('');
$('#user-add-submit').button('reset');
} else {
$('#user-add-submit').button('reset');
}
}
jQuery Ajax加载仅适用于单个单词变量 - php在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…
jQuery AJAX使用fadeIn加载内容 - php我有一个容器,内容应从不同的php文件加载。所以我有这个:$('ul#menu li a').click(function(){ var page = $(this).attr('href'); $('#wind').load('pages/'+ page +'.php…
jQuery .ajax将整个JavaScript数组传递给PHP - phptdata = new Array(); tdata['id'] = "helloid"; tdata['name'] = "helloname"; tdata['location'] = "hellolocation"; tdata[…
PHP:将数组值加在一起 - php我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…
使用PHP变量将多个参数传递给AJAX JQuery - php我试图将2个值传递给AJAX JQuery函数。我的函数是由下拉列表的onChange触发的,该列表从数据库获取数据并通过while循环运行,并使用PHP输出,如下所示:$dropDown = "<label for='drop_down_list'>Drop Down: </label> <sel…