日期:2014-05-16  浏览次数:20660 次

ajax中,多行的response.write,如何分别取出值?
本帖最后由 xilaianzxsc 于 2013-10-16 15:39:26 编辑
login.asp中:

function login_onblur()
{
var yhid=document.getElementById("yhid").value;
var url="cheshi.asp?usercode="+yhid;
request.open("GET",url,true);
request.onreadystatechange=updatepage;
request.send(null);
}

function updatepage()
{
if (request.readyState == 4 && request.status==200)
{
var response=request.responseText;
document.getElementById("gysname").value = response的第一段字符
document.getElementById("yhname").value = response的第二段字符
现存在的问题是:responseText的值能取回来了,但是分不开了.比如说上述二个value,要分别赋值的时候,就无法分离.
  
}


cheshi.asp中如下:

<%
sql = "select * FROM vendor_username where ...." //此处省略

conn = Server.CreateObject("ADODB.Connection")
rs = Server.CreateObject("ADODB.Recordset")
conn.ConnectionString = ........此处先省略
conn.Open()  //连接数据库

rs.ActiveConnection = conn
rs.CursorType = 1 //设置游标类型
rs.LockType = 1 //设置锁定状态
rs.Open(sql) // 打开记录集. 

Response.Clear
Response.Charset="gb2312"
Response.Write(rs("cvenname"));
Response.Write(rs("User_name"));  //此时是二个response.write了,这二个,要分别返回到表单的二个text中去的.  现在的问题是:值可以传递,但无法分离.

Response.End;
%>

------解决方案--------------------
你可以返回数组,或者json, 拼字符串等等。
------解决方案--------------------
response[0],response[1]行不行?
------解决方案--------------------
将返回数据拼成json,直接response.write,在js里再分别取出来,想分几个都可以实现
------解决方案--------------------
简单点就用特殊符号分隔,客户端js split下就得了

Response.Write(rs("cvenname"))
Response.Write("#")
Response.Write(rs("User_name"))



var response=request.responseText;
var arr=response.split('#');//拆分成数组
document.getElementById("gysname").value = arr[0]
document.getElementById("yhname").value = arr[1]