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

标签 jquery coldfusion

我需要从 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 对象表示法,在 Javascript 中读取它非常容易 - 并且有许多库可以将多种语言的数据序列化为 JSON。


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

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

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

  • 状态
  • 消息
  • 数据;它本身是另一个对象,包含两个属性。

从 AJax 调用返回这种字符串应该不会太难——这是一个非常灵活且非常强大的系统。

关于jquery - 从函数返回两个或多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2602471/

相关文章:

javascript - 编辑当前表单向导以成功发布数据

javascript - 如何更改类onclick?

jquery - ColdFusion 9 JSON 解析错误?

java - 如何在 POI 中使用 getViewableIterator

java - coldFusion jvm垃圾收集不是

jquery - IE 中非常奇怪的 url,页面 404 错误

javascript - 如何删除以 javascript 为目标的 css 元素

javascript - 日期和 ISO 日期之间的区别

javascript - 使用 jQuery 获取花括号中的无效 HTML 代码

javascript - 自定义数字格式函数无法将 0 作为小数返回