【最后100分请教】关于前台传值到后台代码,并写入数据库的问题.

pengyu0864 2011-09-05 10:45:25
我现在前台代码已经做好了..有很多个checkbox和几个下拉列表..

值已经被我取到了.


因为我用的是html控件,并不是服务器控件,所以取到值以后,我并不知道怎么才能让后台接收到这些值.

我尝试仿照着用JS写的Ajax引擎传值,但是点击了按钮没任何反应...(字符串比较长,所以不适用于用requet.querystring来取值...)

Jquery我没有接触过..所以很纠结..


请问有什么好的解决方案吗?
...全文
1148 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
标准老西儿 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

你可以在html 控件中加入 runat="server" 代码贴出来
[/Quote]
一看就是初学者!
pengyu0864 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 net_lover 的回复:]

它会返回一个arr字符串,我在台不可能requet这个方法吧?

也可以使用Request.Form啊
[/Quote]

<html>

<head></head>
<body>
<select id="tezheng">
<option>--请选择--</option>
<option value="shuzi">数字</option>
<option value="zimu">字母</option>
</select>
<div id="d" style="width:560px;"></div>

<input id="Button1" type="button" onclick ="GetDatapy()" value="获取checkbox" />

<script type="text/javascript">

var obj = {
shuzi: ['123','456','789'],
zimu: ['abc','def']
}
document.getElementById('tezheng').onchange = function() {
document.getElementById('d').innerHTML = '';
document.getElementById('d').innerHTML
var value = this[this.selectedIndex].value;
var arr = obj[value];
for (var i = 0; i < arr.length; i++) {
var checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.id = 'cb' + i; //加个id
checkbox.value = arr[i];
document.getElementById('d').appendChild(checkbox);
document.getElementById('d').innerHTML += arr[i] + ' ';
if (i % 4 == 3 && i != 0) {
document.getElementById('d').innerHTML += '<br />'
}
}
};

function GetDatapy() {
var arr = '';
var objs = '';
objs = document.getElementsByTagName("input");
for (var i = 0; i < objs.length; i++) {
if (objs[i].type == "checkbox") {
if (objs[i].checked) {
arr += document.getElementById('cb' + i).value + ';';
}

}

}
alert(arr);
//return arr;

}


</script>

</body>

</html>


师兄,现在就是想把GetDatapy()这个方法返回的值,传到后台去写进数据库....
最好用ajax。。。这里ajax我仿照着写了几个,都提交不成功
菜神传说 2011-09-07
  • 打赏
  • 举报
回复
把提交按钮的Type改为submit,在后台用Request.From提取就行啦。整这么麻烦做什么
pengyu0864 2011-09-07
  • 打赏
  • 举报
回复
感谢各位的回复,现在结贴
孟子E章 2011-09-07
  • 打赏
  • 举报
回复
它会返回一个arr字符串,我在台不可能requet这个方法吧?

也可以使用Request.Form啊
likevs 2011-09-07
  • 打赏
  • 举报
回复
看了下楼主的HTML源码,发现果然是单纯的静态html文件,连表单都没有
这种页面要与数据库交互,那最好用Ajax吧,
其实这技术,现在已不是什么了,百度一下一大把,至于楼主说的改了几个没改成功,那可能是没找对了

其实没必要去理解它的底层原理,用多了,你也大概模糊地想象出它的工作原理,只不过前提是你要先在网上找一个来修改并测试使用成功再说

建议测试时以最简单的页面去测试,比如就单纯的传一个1234过去,再反回相应的简单值,测试成功了再用到真的项目上就容易多了
笑傲江湖_adb 2011-09-07
  • 打赏
  • 举报
回复
ilyzsq 2011-09-07
  • 打赏
  • 举报
回复
学习学习 观摩之中…………
w290601645 2011-09-07
  • 打赏
  • 举报
回复

<html>

<head></head>
<body>
<select id="tezheng">
<option>--请选择--</option>
<option value="shuzi">数字</option>
<option value="zimu">字母</option>
</select>
<div id="d" style="width:560px;"></div>

<input id="Button1" type="button" onclick ="GetDatapy()" value="获取checkbox" />

<script type="text/javascript">

var obj = {
shuzi: ['123','456','789'],
zimu: ['abc','def']
}
document.getElementById('tezheng').onchange = function() {
document.getElementById('d').innerHTML = '';
document.getElementById('d').innerHTML
var value = this[this.selectedIndex].value;
var arr = obj[value];
for (var i = 0; i < arr.length; i++) {
var checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.id = 'cb' + i; //加个id
checkbox.value = arr[i];
document.getElementById('d').appendChild(checkbox);
document.getElementById('d').innerHTML += arr[i] + ' ';
if (i % 4 == 3 && i != 0) {
document.getElementById('d').innerHTML += '<br />'
}
}
};

function GetDatapy() {
var arr = '';
var objs = '';
objs = document.getElementsByTagName("input");
for (var i = 0; i < objs.length; i++) {
if (objs[i].type == "checkbox") {
if (objs[i].checked) {
arr += document.getElementById('cb' + i).value + ';';
}

}

}
alert(arr);
//return arr;

}


</script>
</body>

</html>


//把arr的值给隐藏域
document.getElementById("hfValue").value=arr;

<asp:HiddenField ID="hfValue" runat="server" />

.cs页面取hfValue的值
zzr494684778 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 pengyu0864 的回复:]
我现在前台代码已经做好了..有很多个checkbox和几个下拉列表..

值已经被我取到了.


因为我用的是html控件,并不是服务器控件,所以取到值以后,我并不知道怎么才能让后台接收到这些值.

我尝试仿照着用JS写的Ajax引擎传值,但是点击了按钮没任何反应...(字符串比较长,所以不适用于用requet.querystring来取值...)

Jquery我没有接触过..……
[/Quote]如果你的全部控件都是用html 的,包换一些类似于"登陆"“查询”的按钮,然后你再写一个隐藏手按钮<button type="hidden" id="btn1"><button>点击查询时直接写document.getelementbyid("btn1").click();进入后台,就可以啦
posefooler 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lmaohuanl 的回复:]

http://www.dzwebs.net/3577.html
[/Quote]
正解,彻底的满足了你的需求。
翘楚时代 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wjlovexml1314 的回复:]
你可以在html 控件中加入 runat="server" 代码贴出来
[/Quote]

大哥 你会不?加上你这句后,他的客户端控件还是客户端控件?变质了吧?

LZ可以在JS中创建一个session,session中存放一个Array,而Array中存放你的要回发的信息,如: var str = new Array(id,name,detail);
设置一个标志来标识session已传值,通知后台读取,然后后台读取session即可赋值给一个Array。
孟子E章 2011-09-07
  • 打赏
  • 举报
回复
http://code.jquery.com/jquery-1.6.2.min.js
pengyu0864 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 net_lover 的回复:]
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script src="jquery-1.6.2.min.js" type="text/javascript"></script>
</head>
<body>
<select id="tezheng">
<opti……
[/Quote]

<script src="jquery-1.6.2.min.js" type="text/javascript"></script>

这个东西能发给我吗... 230967229@163.com
孟子E章 2011-09-07
  • 打赏
  • 举报
回复
你也可以这样
<script type="text/javascript">

var obj = {
shuzi: ['123', '456', '789'],
zimu: ['abc', 'def']
}
document.getElementById('tezheng').onchange = function () {
document.getElementById('d').innerHTML = '';
document.getElementById('d').innerHTML
var value = this[this.selectedIndex].value;
var arr = obj[value];
for (var i = 0; i < arr.length; i++) {
var checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.id = 'cb' + i; //加个id
checkbox.value = arr[i];
document.getElementById('d').appendChild(checkbox);
document.getElementById('d').innerHTML += arr[i] + ' ';
if (i % 4 == 3 && i != 0) {
document.getElementById('d').innerHTML += '<br />'
}
}
};

function GetDatapy() {
var arr = '';
var objs = '';
objs = document.getElementsByTagName("input");
for (var i = 0; i < objs.length; i++) {
if (objs[i].type == "checkbox") {
if (objs[i].checked) {
arr += document.getElementById('cb' + i).value + ';';
}
}
}
$.ajax({
type: 'POST',
url: "aa.aspx",
data: { "cb": arr, "data2": "测试内容1", "data3": "测试内容2" },
success: function (result) {
alert(result);
}
});
}


</script>

后台接收
Response.Write("你的选择是:" + Request.Params["cb"] + " " + Request.Params["data2"]);
孟子E章 2011-09-07
  • 打赏
  • 举报
回复

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script src="jquery-1.6.2.min.js" type="text/javascript"></script>
</head>
<body>
<select id="tezheng">
<option>--请选择--</option>
<option value="shuzi">数字</option>
<option value="zimu">字母</option>
</select>
<div id="d" style="width: 560px;"></div>
<input id="Button1" type="button" onclick="GetDatapy()" value="获取checkbox" />
<script type="text/javascript">

var obj = {
shuzi: ['123', '456', '789'],
zimu: ['abc', 'def']
}
document.getElementById('tezheng').onchange = function () {
document.getElementById('d').innerHTML = '';
document.getElementById('d').innerHTML
var value = this[this.selectedIndex].value;
var arr = obj[value];
for (var i = 0; i < arr.length; i++) {
var checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.id = 'cb' + i; //加个id
checkbox.value = arr[i];
document.getElementById('d').appendChild(checkbox);
document.getElementById('d').innerHTML += arr[i] + ' ';
if (i % 4 == 3 && i != 0) {
document.getElementById('d').innerHTML += '<br />'
}
}
};

function GetDatapy() {
var arr = '';
var objs = '';
objs = document.getElementsByTagName("input");
for (var i = 0; i < objs.length; i++) {
if (objs[i].type == "checkbox") {
if (objs[i].checked) {
arr += document.getElementById('cb' + i).value + ';';
}

}

}

$.ajax({
type: 'POST',
url: "aa.aspx",
data: arr,
success: function (result) {
alert(result);
}
});
}


</script>
</body>
</html>


后台

System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream);
Response.Write("你的选择是:" + sr.ReadToEnd());//写入数据库自己处理就可以了
sr.Close();
  • 打赏
  • 举报
回复
给那些checkbox一个相同的name,像这样
<input type="checkbox" name="chk" id="chk1" value="1" />
<input type="checkbox" name="chk" id="chk2" value="2" />
<input type="checkbox" name="chk" id="chk3" value="3" />


CS中用Request.Form.Get("chk")取值。如果上面都选中的话,会取到1,2,3这样的一个序列
pengyu0864 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 liuchaolin 的回复:]

是不是html代码都无所谓,只要你的按钮是提交的就行,也不用什么ajax,表单多加一个隐含域name=act,附给他默认值1,直接提交form

后台在page_load中处理

if(Request.Form["act"]!=null && Request.Form["act"]=="1")
{
读取表单,直接用Request.Form["控件name"]
……
[/Quote]


那是不是要把我的确定按钮 加上一个 runat=server呢?
pengyu0864 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hao1hao2hao3 的回复:]

引用 8 楼 pengyu0864 的回复:
引用 7 楼 jayrao5566 的回复:

JScript code
$.ajax({
type: "Post",
url: "detail.aspx/ Zhuti_UpNum",
data: "{'Club_ID':'" + $('#ClubID').val() + "'}",
contentType: "application……
[/Quote]

那我应该怎么修改一下呢? 而且感觉他这个好像是不完整的吧.
hao1hao2hao3 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pengyu0864 的回复:]
引用 7 楼 jayrao5566 的回复:

JScript code
$.ajax({
type: "Post",
url: "detail.aspx/ Zhuti_UpNum",
data: "{'Club_ID':'" + $('#ClubID').val() + "'}",
contentType: "application/json;……



用jquery和我……
[/Quote]

没有,Javascript和JQuery可以同时使用。。。
加载更多回复(25)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧