Захват данных из FORM с использованием jQuery / Ajax / JSON - PullRequest
1 голос
/ 10 апреля 2010

У меня есть несколько текстовых полей в форме, и когда пользователь отправляет, я хочу захватить данные и вставить их в базу данных.

Вот как выглядит мой код

// Called just before the form is submitted.
beforeSubmit: function(data)
{
    var item = $("[id$='item']");
    var category = $("[id$='category']");
    var record = $("[id$='record']");

    var json = "{'ItemName':'" + escape(item.val()) +
        "','CategoryID':'" + category.val() + "','RecordID':'" + record.val() + "'}";

    //This page is where data is to be retrieved and processed.
    var ajaxPage = "DataProcessor.aspx?Save=1";

    var options =
    {
        type: "POST",
        url: ajaxPage,
        data: json,
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        async: false,
        success: function(response)
        {
            alert("success: " + response);
        },
        error: function(msg)
        {
            alert("failed: " + msg);
        }
    };

    //Execute the Ajax call and get a response.
    var returnText = $.ajax(options).responseText;
    if (returnText == 1) {
        record.html(returnText);
        $("#divMsg").html("<font color=blue>Record saved successfully.</font>");
    }
    else
    {
        record.html(returnText);
        $("#divMsg").html("<font color=red>Record not saved successfully.</font>");
    }

    // $("#data").html("<font color=blue>Data sent to the server :</font> <br />" + $.param(data));
},

Вот какие данные отправляются на сервер: если я раскомментирую следующую строку.

 // $("#data").html("<font color=blue>Data sent to the server :</font> <br />" + $.param(data));
__VIEWSTATE=%2FwEPDwULLTE4ODM1ODM4NDFkZOFEQfA7cHuTisEwOQmIaj1nYR23&__EVENTVALIDATION=%2FwEWDwLuksaHBgLniKOABAKV8o75BgLlosbxAgKUjpHvCALf9YLVCgLCtfnhAQKyqcC9BQL357nNAQLW9%2FeuDQKvpuq2CALyveCRDwKgoPWXDAKhwImNCwKiwImN &day_fi=12&month_fi=12&year_fi=1234&lastFour_fi=777&countryPrefix_fi=1&areaCode_fi=555-555&phoneNumber_fi=5555&email_fi=nisardotnet%40gmail.com&username=nisarkhan&password=123456&retypePassword=123456

Ответы [ 2 ]

1 голос
/ 13 апреля 2010

Nisardotnet - вы работаете в C #? У тебя здесь слишком много всего происходит. Вы можете сократить свой код наполовину, используя веб-методы, а также избавиться от viewstate - он вам не нужен (удалите форму со страницы)

Если вы работаете в C #, дайте мне знать, и я могу помочь. Rob

**** ***** APPEND 1005 *

Хорошо - я создал простую функцию «захватить входные значения и обновить БД» - она ​​находится на моем сайте здесь .

Дайте мне знать, если у вас есть вопросы. Rob

**** ***** APPEND 1013 *

Хорошо, значит, в вашем файле класса вы можете иметь

internal static void updateDB(String values)
{
    // do something with 'values'
}

Тогда на вашей странице aspx вы можете назвать это так ...

[WebMethod]
public static void updateDB(String values)
{
    yourClass.updateDB(values);
}

Это должно сработать.

0 голосов
/ 10 апреля 2010

Вы должны быть в состоянии извлечь все это из формы Request.Form.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...