在这种情况下,我的PHP应该返回什么? - php

我想提交一个表单而不刷新页面,并且我有这个表单:

<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 - php

tdata = 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…