从早等到晚,就为解决这一个问题!!

时间:2021-04-11 14:43:46
再说一下需求,兄弟们

大致就是这样: 定义了一个文本框输入"标题",另一个输入具体的"内容",然后有一个分类(下拉列表表示,其绑定到数据库的某一字段,设置其id比如为Name,但每个下拉列表选项在数据库里另一个字段里,对应的有相应的具体内容),


现在我们要做的是,用一个表格把用户新添加的"标题"和"内容"立即显示到页面中,同时包括对应选择的下拉列表Name的选择的值,以及每一个值在数据库中相对应的具体的内容。



其实显示Name的值很容易,但根据Name的值 异步取出取出数据库的内容时,会出现多余的html代码, 我已经用response.end()了,对应的HTML和Asp.net页面代码是

HTML:


var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
var url = "valData.aspx?Name="+escape((Name.value));
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = showData;  
xmlHttp.send(null);

/
.......

/

    
     function showData() {
            if (xmlHttp.readyState == 4)
               {
                 if (xmlHttp.status == 200)
                    {
                    var response = xmlHttp.responseText;                     
                 //var Name=document.getElementById("td0");
                   Name.innerText+=response;
                
                   }
                 else alert("Error: " + xmlHttp.status);
                }
    
            }   


Asp.net页面:

...........
全局变量区
...........

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            sqlCon.Open()
            Dim Name As String = Request("Name")
            comStr = "Select Contents from Category where Name = '" & Name & "' "
            sqlCom.CommandText = comStr
            drA = sqlCom.ExecuteReader()
            drA.Read()
            If drA.HasRows Then
                Response.Write(drA.Item(0))
                Response.End()
            Else
                Response.Write("对不起,您没有添加内容!")
                Response.End()
            End If
            drA.Close()
        End If

End sub





我原本想的是定义一个全局变量i,表格没增加一行,就+1,然后设置单元格的ID为"td"+i

但传i到 showData(i)中时,系统提示

function showData(i) (传入参数系统提示错误!)

那么我们如何得知把得到的var response = xmlHttp.responseText; 具体传入到那一个表格的那一行,那一个单元格呢?     

没办法,我试着用上面 //var Name=document.getElementById("td0"); 先把取得的数据填充到第一个单元格,结果第一行是从数据库得到的数据没错,但下面一大堆HTML代码,我在上面Asp.net页面中用 Response.End()还是不行!


求大家无比帮帮忙,非常急!!!


8 个解决方案

#1


结果第一行是从数据库得到的数据没错,但下面一大堆HTML代码,我在上面Asp.net页面中用 Response.End()还是不行
________________________________________
比如你请求的是x.aspx,把x.aspx中除<% page ...%>之外的其他代码全部去掉,这样就不会有一大堆HTML代码了。

#2


555 我都试过了,还是有,我快郁闷死了!

#3


var response = xmlHttp.responseText; 
_______________________________________
response的值是什么?

#4


是异步取回的数据

#5


异步取回的数据也是数据,当然也可以看得到;比如你把这个值赋给某个文本区
<textarea id="TextArea1" cols="20" rows="2"></textarea>,如document.getElementById('TextArea1').value =xmlHttp.responseText; 

好了,回家了。

#6


把x.aspx中除<% page ...%>之外的其他代码全部去掉,这样就不会有一大堆HTML代码了。
是真理。

#7


去了啊,兄弟们~

我用alert显示,发现还有啊,哎

#8


如果不知道怎么解决的话可以转变思想,如生成xml然后从客户端进行解析也是一样的啊。

#1


结果第一行是从数据库得到的数据没错,但下面一大堆HTML代码,我在上面Asp.net页面中用 Response.End()还是不行
________________________________________
比如你请求的是x.aspx,把x.aspx中除<% page ...%>之外的其他代码全部去掉,这样就不会有一大堆HTML代码了。

#2


555 我都试过了,还是有,我快郁闷死了!

#3


var response = xmlHttp.responseText; 
_______________________________________
response的值是什么?

#4


是异步取回的数据

#5


异步取回的数据也是数据,当然也可以看得到;比如你把这个值赋给某个文本区
<textarea id="TextArea1" cols="20" rows="2"></textarea>,如document.getElementById('TextArea1').value =xmlHttp.responseText; 

好了,回家了。

#6


把x.aspx中除<% page ...%>之外的其他代码全部去掉,这样就不会有一大堆HTML代码了。
是真理。

#7


去了啊,兄弟们~

我用alert显示,发现还有啊,哎

#8


如果不知道怎么解决的话可以转变思想,如生成xml然后从客户端进行解析也是一样的啊。