请教如何动态改变stateChanged函数内document.getElementById的值

skyonehbyc 2018-12-06 11:22:47
初学,照着W3SCHOOL折腾那个地市区五级联动的php+mysql+ajax的东西,select里ID五级分别是s1--s5,现在成功实现在S1里选择“省”后,s2里的市可以正常出来,但现在问题是如何选择“市”后让s3里的区出来呢?本来思路是在JS里传递参数到函数里,让document.getElementById()的内容可以随GET值变化,但好像stateChanged不让传参,否则不工作,请教该如何实现点击s2后s3联动,点s3后s4联动。。。。。。。。谢谢!以下是js代码

var xmlHttp
function showxzq(str_id,str_value)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("不被支持的浏览器!")
return
}
var url="getxzq.php"
url=url+"?str_id="+str_id+"&str_value="+str_value
url=url+"&sid="+Math.random()
var s_num=parseInt(str_id.charAt(1))+1
var ss=str_id.charAt(0)+s_num
xmlHttp.onreadystatechange=stateChanged
url=encodeURI(url);
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
//document.getElementById("s2").innerHTML=xmlHttp.responseText
document.getElementById("s2").innerHTML=xmlHttp.responseText
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}// JavaScript Document
...全文
155 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyonehbyc 2018-12-07
  • 打赏
  • 举报
回复
自己解决了, 没学过JS,所以对相关变量属性啥的不明白, 直接试了下, 加了几行赋值,把xmlHttp.ss作为变量放到stateChanged函数的document.getElementById()就好了
天际的海浪 2018-12-07
  • 打赏
  • 举报
回复

function showxzq(str_id,str_value,tagid)
{ 
	。。。。。。。
	xmlHttp.onreadystatechange=function(){
		stateChanged(tagid)
	}
	。。。。。。。。。。。。。
}

function stateChanged(tagid){
	document.getElementById(tagid)
}

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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