Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 格式化(服务器端)的数据(客户端)_Javascript_Jquery_.net_Asp.net_Vb.net - Fatal编程技术网

Javascript 格式化(服务器端)的数据(客户端)

Javascript 格式化(服务器端)的数据(客户端),javascript,jquery,.net,asp.net,vb.net,Javascript,Jquery,.net,Asp.net,Vb.net,使用以下脚本: $("#some_button").click(function() { var changed = []; $( 'input[id$="_0"]' ).each(function() { var new_id = this.id.replace( '_0', '_1' ); if ( $(this).val() !== $( 'input#' + new_id ).val() ) { chang

使用以下脚本:

$("#some_button").click(function() {

    var changed = [];

    $( 'input[id$="_0"]' ).each(function() {

        var new_id = this.id.replace( '_0', '_1' );

        if ( $(this).val() !== $( 'input#' + new_id ).val() ) {

            changed.push(new_id);
            // send back id, new value from _0, and old value from _1

        }

    });

    console.log(changed);

});
我需要将
id
\u 1
中的旧值和
\u 0
中的新值发送回服务器。格式化这些数据的最佳方式是什么,这样我就可以轻松地从服务器端提取数据,这样我就可以轻松地向某人发送电子邮件,例如,让他们知道哪些文本框已更改,旧值是什么,以及新值是什么

在服务器端级别,我使用.NET-3.5(VB)

我知道如何发送数据bacl。以及如何通过电子邮件发送数据,我只是想知道在将数据发送回客户端之前如何在客户端对数据进行最佳格式化



我最多可以有50组id、旧的和新的值要发回。很抱歉没有早点说清楚


示例:

如何修改上面的脚本以生成此脚本

[
    {
        "id": "name_0",
        "new": "text",
        "old": "text"
    },
    {
        "id": "age_0",
        "new": "text",
        "old": "text"
    },
    {
        "id": "dept_0",
        "new": "text",
        "old": "text"
    }
]
通过ajax POST发送,并使用或进行解析

结果如下所示:

{
    "0": [
        {
            "old_id": "foo"
        },
        {
            "old_id": "bar"
        }
    ],
    "1": [
        {
            "old_id": "foo2"
        },
        {
            "old_id": "bar2"
        }
    ],
    "2": [
        {
            "old_id": "foo3"
        },
        {
            "old_id": "bar3"
        }
    ]
}
是一种非常好的精简数据交换格式

像这样的东西可能会有用:

var changed = [];

$( 'input[id$="_0"]' ).each(function() {
    var thisItemChanges = { id: this.id, newid = this.id.replace('_0', '_1') };
    changed.push(thisItemChanges);
});

$.post('UrlToPostTo', changed,  function(serverResponse) { // do something with return from server });
另请参阅,以获取有关使用javascript向服务器发送数据的更多信息。

在客户端:

changed.push(new_id)
反而

changed.push({id:new_id, new_val:$(new_id).val(), old_val:$(this).val()});
后来:

$.post(TARGET_URL, changed);
在服务器端:

using System.Web.Script.Serialization;
// ...
public class Change {
    public string id {get; set; }
    public string new_val {get; set; }
    public string old_val {get; set; }
}
List<Change> changes = new JavaScriptSerializer().Deserialize(data_string);

我最多可以有50组id、旧的和新的值要发回。很抱歉之前没有说清楚。请看上面讨论的新示例。我最多可以有50组id、旧的和新的值要发回。很抱歉之前没有说清楚。请参阅上面讨论的新示例。更新-只需使用JSON数组:)我最多可以返回50组id、旧值和新值。很抱歉之前没有说清楚。请参阅上面问题中的新示例。现在的答案可以与您的示例一起使用,并将创建所需的格式。(虽然你看不到。)我读到,你使用的是VB,但我认为它很容易翻译。请看上面的例子。我可以使用jquery.serialize/jquery.serializeArray来实现这一点吗?
using System.Web.Script.Serialization;
// ...
public class Change {
    public string id {get; set; }
    public string new_val {get; set; }
    public string old_val {get; set; }
}
List<Change> changes = new JavaScriptSerializer().Deserialize(data_string);
var url = TARGET_URL + "?old_id="+escape(old_id)+"&new_id="+escape(new_id);