javascript - 如何将使用 javascript 和 ASP.NET 生成的字段中的数据发送到 Microsoft SQL?
问题描述
我使用 Javascript 和 ASP.NET 创建了一个代码来生成调查所需的字段,我想知道如何将字段内的文本发送到数据库中。这是我使用 ASP.NET 生成表的代码。我的目标是创建一个像谷歌表单这样的网络应用程序,可以让非程序员创建调查。
<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);
}
});
解决方案
由于您是在客户端创建控件,因此服务器不会知道它们。Request.Forms
在这种情况下,由于您使用 ASP.Net 并且有一个提交按钮,因此文本框和下拉列表中的值确实会在对象中发送回服务器。例如,如果您有一个带有 name 的文本框question1
,在提交按钮的 click 事件处理程序上,您可以尝试以下操作:
Request.Forms["question1"]
这将为您提供回发到服务器的文本框中的值。
请注意,还有其他方法可以处理您可能想要查看的这种动态场景。
推荐阅读
- css - 在父元素类中调整图像大小
- binary-tree - 如何找到二叉树中所有节点对的 LCA
- sql - 选择1996-1997年客户从巴西SQL(pgAdmin4)到MongoDB的订单
- bash - 持续扫描目录并在新项目上执行脚本
- woocommerce - 将 Woocommerce 会话从管理员传递到前端
- php - 多维数组:如果存在第一个值,则提取第二个值
- java - 我如何将 java 扫描仪与惰性单例一起使用?
- javascript - 列出具有特定角色的用户(其中一些未出现在列表中)
- node.js - 使用 JSON 描述符如何在 gRPC 中定义数组?
- r - R Markdown - 如何在 Rmd 文档中包含哈希标签,以便它们在 Markdown (.md) 文档中正确呈现