微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 从函数返回两个或多个值

我需要从ajax回调函数中的ColdFusion函数返回多个值.这是我得到的:

$('input[name="StateName"]').live('change',function() {
    var StateID = $(this).parents('tr').attr('id');
    var StateName = $(this).val();
    $.ajax({
        url: 'Remote/State.cfc',type: "POST",data: {
            'method': 'UpdateStateName','StateID': StateID,'StateName': StateName
        },success: function(result){
            if (isNaN(result)) {
                $('#msg').text(result).addClass('err');
            } else {
                $('#' + result + ' input[name="StateName"]').addClass('changed');
            };
        },error: function(msg){
            $('#msg').text('Connection error').addClass('err');
        }
    });
});

如果我捕获数据库错误,则触发成功回调,结果为非数字(实际上是错误消息的文本).我需要该函数也传回其他值.一个可能是导致错误的行的主键.另一个可能是旧的StateName,因此我可以刷新屏幕上的旧值,以便客户端完全知道他们的更改没有生效.

我想我在这里违反了原子性规则,需要解决这个问题,因为我使用结果作为更新行的主键,或者如果更新失败则是错误消息.我需要返回主键和错误消息.

最佳答案
我想你的远程函数可以返回一个包含一个对象的**JSON字符串**.

它允许您在单个“值”中包含多个值.

JSON是Javascript Object Notation,它很容易在Javascript中读取 – 并且有很多库可以将数据序列化为多种语言的JSON.

例如,这是一个JSON字符串:

{"status":1,"message":"this is a message","data":{"test":"plop","hello":"world"}}

这对应于具有3个属性的对象:

>状态
>消息
>和数据;它本身就是另一个对象,它包含两个属性.

从你的AJax调用中返回这种字符串应该不会太难 – 而且这是一个非常灵活,非常强大的系统.

原文地址:https://www.jb51.cc/jquery/428860.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐