1

以下のスクリプトの値をサーバー側に渡す方法

// listen for and handle auth.statusChange events
FB.Event.subscribe('auth.statusChange', function(response) {
if (response.authResponse) {
FB.api('/me', function(me) {
document.getElementById('auth-displayname').innerHTML = me.name;
document.getElementById('Email').innerHTML = me.email;
document.getElementById('gender').innerHTML = me.gender;
document.getElementById('birth').innerHTML = me.birthday;
document.getElementById('firstname').innerHTML = me.first_name;
})
4

3 に答える 3

1

webform2.aspx で

     <script type="text/javascript">
        function LoadValues(me) {
                     {

                        var Email = me.email;
                        var Name = me.name;
                        var Id = me.id;
                        var Dob = me.birthday;
                        var Gender = me.gender;
                        alert(Email)

                        document.getElementById('auth-loggedout').style.display = 'none';
                        document.getElementById('auth-loggedin').style.display = 'block';


                          var data2Send = '{"fbemail": '+Email+', "fbname":'+Name+', "fbid":'+Id+',"fbname":'+Dob+',"fbname":'+Name+' }';
        $.ajax({
            type: "POST",
            url: 'webform2.aspx/Testmethod',
            data: data2Send,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (arg) {console.log(arg) //call successfull
            $("#lbltxt").text(arg);
            },
            error: function (xhr) {
              alert(xhr);  //error occurred
            }
        });


          }
</script>

webform2.aspx.cs 内

[System.Web.Services.WebMethod]
    public static string TestMethod(string fbid, string fbemail, string fbsex, string fbdob)
    {


        SqlConnection con = new SqlConnection();
        SqlCommand cmd = new SqlCommand();
        SqlDataReader datareader;


        con = new SqlConnection(".......");
        cmd = new SqlCommand("SpFacebookInfo", con);
        con.Open();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@FbId", fbid);
        cmd.Parameters.AddWithValue("@FbEmail", fbemail);
        cmd.Parameters.AddWithValue("@FbSex", fbsex);
        cmd.Parameters.AddWithValue("@FbDob", fbdob);
        datareader = cmd.ExecuteReader();
        datareader.Close();

        return fbemail;


    }

            }      
于 2012-09-21T09:43:38.017 に答える
1

Javascript 変数はクライアントに存在するため、これらの値をサーバーに取得するには、クライアントからの要求を実行する必要があります。おそらく、AJAX と呼ばれるアプローチが必要です。AJAX では、ページのバックグラウンドでサーバーにリクエストを行う Javascript が必要です。これらのバックグラウンド リクエストを予期する C# Web ページを設定します。GET リクエストを使用する場合は、新しい C# ページへの AJAX リクエストのクエリ文字列に変数を配置します。POST リクエストを使用する場合は、ページに投稿するデータにパラメーターを設定します。

jQuery のようなライブラリは、この種のことを非常に簡単にします。

于 2012-09-17T12:38:38.460 に答える
0

uが行ったように隠し変数に値を設定し、adocument.myform.submit(); を実行してPage_Loadに移動し、変数を読み取ります

于 2012-09-17T12:35:35.573 に答える