Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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 无法使用asp.net web窗体中的引导模式弹出窗口将数据发布到数据库_Javascript_Jquery_Asp.net_Ajax_Twitter Bootstrap - Fatal编程技术网

Javascript 无法使用asp.net web窗体中的引导模式弹出窗口将数据发布到数据库

Javascript 无法使用asp.net web窗体中的引导模式弹出窗口将数据发布到数据库,javascript,jquery,asp.net,ajax,twitter-bootstrap,Javascript,Jquery,Asp.net,Ajax,Twitter Bootstrap,我正在使用asp.net web表单,我希望tom将模态弹出窗口中的数据发布到数据库,这不起作用,但是只是将文本框放在内容页的正文中,保存数据很好,我需要使用模态弹出窗口,因为我想做的所有项目都需要这样做。我的代码如下 <script type="text/javascript"> $(document).ready(function () { insertkpi(); }); function insertkpi() {

我正在使用asp.net web表单,我希望tom将模态弹出窗口中的数据发布到数据库,这不起作用,但是只是将文本框放在内容页的正文中,保存数据很好,我需要使用模态弹出窗口,因为我想做的所有项目都需要这样做。我的代码如下

<script type="text/javascript">

    $(document).ready(function () {

        insertkpi();
    });


    function insertkpi() {
        $('#savebtn').click(function () {
            var kpi = {};
            kpi.Name = $('#TextBox1').val();
            kpi.initiative = $('#TextBox2').val();
            kpi.perfomance = $('#TextBox3').val();
            kpi.progress = $('#TextBox4').val();
            kpi.BaseTarget = $('#TextBox5').val();
            kpi.streachTarget = $('#TextBox6').val();
            kpi.Period = $('#TextBox7').val();

            $.ajax({
                url: 'addKpi.aspx/submitkpi',
                method: 'POST',
                contentType: 'application/json; charset=utf-8',
                data: '{item: ' + JSON.stringify(kpi) + '}',
                success: function () {
                    displayKPI();

                },

                error: function (xhr, status, p3, p4) {
                    console.debug(xhr);
                    var err = "Error " + " " + status + " " + p3;
                    if (xhr.responseText && xhr.responseText[0] == "{")
                        err = JSON.parse(xhr.responseText).message;
                    alert(err);
                }

            });
        });
    }


</script>

在kpi对象中有
kpi.name set=$(“#Textbox1”).val()
。但是,这在您的模式中并不存在。对于模式中的名称文本框,ID为nametxt。所以使用
kpi.name=$(“#nametxt”).val()来创建您的对象。

JSON.stringfy在我看来不合适,您会得到无效的JSON,请这样尝试

 $.ajax({
            url: 'addKpi.aspx/submitkpi',
            method: 'POST',
            contentType: 'application/json; charset=utf-8',
            data:  JSON.stringify({item:kpi}),
            success: function () {
                displayKPI();

            },

嗨,Colby Boren,kpi.name=$(“#nametxt”).val();已更正,但仍然没有working@Timothy好啊您是否在kpi对象上尝试了console.log()以查看其创建是否正确?我真的不知道如何执行此操作,但问题是,它只是在使用模式对话框时不起作用。当在正文中使用文本框和按钮时,其工作原理是:我收到500个内部服务器错误,如何解决此问题?hi@Ivan Stefner,我已更改了JSON.stringfy,但仍然不工作。如果我不使用引导模式弹出窗口,则向数据库发布是有效的,但是我想使用模式弹出窗口,因此我怀疑问题出在模式上,但我看不出您的代码中到底哪里有错误或异常,浏览器控制台怎么说?嗨@Ivan Stefner我得到了401未授权这意味着客户端不能被授权,我不认为我的代码不好。尝试编辑yor web.config添加此
 [WebMethod]
    public static string submitkpi(insertkpi item)
    {
        string constring = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(constring))
        {
            using (SqlCommand cmd = new SqlCommand("INSERT INTO KPIs (Name,Initiative,perfomance,progress,BaseTarget,streachTarget,Period) Values(@Name,@Initiative,@perfomance,@progress,@BaseTarget,@streachTarget,@Period)", conn))
            {
                try
                {
                conn.Open();
                cmd.Parameters.AddWithValue("@Name", item.Name);
                cmd.Parameters.AddWithValue("@Initiative", item.Initiative);
                cmd.Parameters.AddWithValue("@perfomance", item.perfomance);
                cmd.Parameters.AddWithValue("@progress", item.progress);
                cmd.Parameters.AddWithValue("@BaseTarget", item.BaseTarget);
                cmd.Parameters.AddWithValue("@streachTarget", item.streachTarget);
                cmd.Parameters.AddWithValue("@Period", item.Period);


                cmd.ExecuteNonQuery();
                }
                catch (Exception )
                {

                }
                finally
                {
                    conn.Close();
                }

            }
        }
 $.ajax({
            url: 'addKpi.aspx/submitkpi',
            method: 'POST',
            contentType: 'application/json; charset=utf-8',
            data:  JSON.stringify({item:kpi}),
            success: function () {
                displayKPI();

            },