代码之家  ›  专栏  ›  技术社区  ›  Haakon

如何从使用javascript和ASP生成的字段发送数据。NET到Microsoft SQL?

  •  0
  • Haakon  · 技术社区  · 6 年前

    我使用Javascript和ASP创建了一段代码。NET生成调查所需的字段,我想知道如何将字段内的文本发送到数据库中。这是我使用ASP的代码。NET生成表。我的目标是创建一个像google form这样的web应用程序,它可以让非程序员创建调查。

    <div class="form-group" style="margin:auto; width:80%;">
        <form name="add_question" id="add_question">
            <asp:Label ID="Label1" runat="server" Text="Survey Title: " Font-Size="Large"></asp:Label>
            <input type="text" name="title" id="title" class="form-control question_list" placeholder="Enter Survey Title"/>
            <asp:Label ID="Label2" runat="server" Text="Description: " Font-Size="Large"></asp:Label>
            <br>
            <textarea rows="4" style="margin:auto; width:100%; resize: none;" name="description" id="description"  placeholder="Enter description"></textarea>
            <table class="table" id="dynamic_field">
                <thead>
                <tr>
                    <th style="width: 50%">Question</th>
                    <th style="width: 15%">Type of Question</th> 
                    <th style="width: 32%">Fields</th>
                    <th style="width: 3%">Remove</th>
                </tr>
                </thead>
                <tbody>
                </tbody>
            </table>
        </form>
        <button type="button" name="add" id="add" class="btn btn-warning" > Add Question </button>
        <asp:Button name="submit" id="submit" class="btn btn-success" runat="server" Text="Submit" OnClick="submit_Click" />           
     </div>
    

    下面是javascript的代码,它在表中创建新行,并根据所选的问题类型生成字段。

    //ADD TABLE ROWS
    $("#add").click(function () {
            i++;
            $("#dynamic_field tbody").append('<tr id="row' + i + '"> <td> <input type="text" name="question' + i + '" id="question'
            + i + '" class="form-control question_list" placeholder="Enter question"/> </td><td><select name="type' + i + '" id="' + i + '" class="dropdown">'
            + '<option selected></option>'
            + '<option value="1">Multiple Choice</option>'
            + '<option value="2">CheckBox</option>'
            + '<option value="3">Short Sentence</option>'
            + '<option value="4">Paragraph</option>'
            + '<option value="5">Line Scale</option>'
            + '</select></td><td></td><td><button name="remove' + i + '" id="'
            + i + '" class="btn btn-danger btn_remove"> X </button>  </td> </tr> ');
        });
    $(document).on('change', '.dropdown', function () {
        var xid = $(this).attr("id");
        if ($(this).val() == '3') {
            $('#myInput' + xid + '').remove();      
            var row = document.getElementById("row"+xid+"");
            var z = row.insertCell(2);        
            z.innerHTML = '<td style="width: 32%"><input name="3" id="myInput' + xid + '" type="text" style="width: 100%" /></td>';
            row.deleteCell(3);
        }
        else if ($(this).val() == '4') {
            $('#myInput' + xid + '').remove();
            var row = document.getElementById("row"+xid+"");
            var z = row.insertCell(2);
            z.innerHTML = '<td style="width: 32%"><textarea rows="2" cols="40" name="4" id="myInput' + xid + '" style="margin:auto; width:100%; resize: none;" ></textarea></td>';
            row.deleteCell(3);
        }
    });
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   danish    6 年前

    由于您是在客户端创建控件,服务器将不知道这些控件。在这个场景中,由于您使用ASP。Net并有一个提交按钮,文本框和下拉列表中的值确实会在 Request.Forms 对象例如,如果您有一个名为 question1 ,在“单击提交事件处理程序”按钮上,可以尝试以下操作:

    Request.Forms["question1"]
    

    这将在返回到服务器的文本框中为您提供值。

    请注意,还有其他方法可以处理这种动态场景,您可能需要了解一下。