+2  A: 

For #1, you need to move the .val() calls inside the method so they're fetched at the correct time, like this:

function SetStatus() {
    var status1 = $("#statusBox").val();
    var userID = $("#MainContent_userID").val();
    $.ajax({
        type: "POST",
        url: "http://localhost/Sports/Services/UserWebService.asmx/SetStatus",
        data: '{"status": "' + status1 + '", "userID": "' + userID + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        error: OnError
    });
}

Though you should consider making this as an object and using .stringify to handle any special characters.


For #2, asmx web services like to wrap the object, so it doesn't look like this:

{ "Status": "My Status", "UserID": 12, "StatusLikes": 0..... }

It actually looks like this:

{ "d": { "Status": "My Status", "UserID": 12, "StatusLikes": 0..... } }

So instead of this:

$("#MainContent_status").html(response.Status).fadeIn(1000);

You need this:

$("#MainContent_status").html(response.d.Status).fadeIn(1000);
Nick Craver
You definitely fixed one thing I forgot to mention by putting the .val) calls inside the function.. That was a total oversight by me. Thanks so much for that..Now for one prob I still have, When I post the update to the database, and return the object, he new status doesnt show in the status area. It still shows the old one. What could be causing that?Thats the only problem I have left now. Thanks again for your help already..
Corey
And btw, I did fix the response.Status to response.d.Status too..
Corey
Nm.. I figured it out finally... LOL Thanks!
Corey