JavaScript php 缺少对象
query0=mssql_query("select * from tb_xm where xm_pcid='1'");
$y=1;
while($myrow0=mssql_fetch_array($query0)){
?>
function datawrite(){
if(xmlHttp.readyState==4 || xmlHttp.readyState==0){
xmlHttp.open("GET","kspf_conn1.php?online_xm="+""+"&online_user="+""+"&online_ytbyx="+ytbyx+"&online_mbnr="+mbnr+"&online_zjzb="+zjzb+"&online_ffjs="+ffjs+"&online_xyqj="+xyqj+"&online_jdjf="+jdjf+"&online_zhpf="+zhpf+"&online_sum="+sum,true);
xmlHttp.send(null);
}else{
alert("datawrite()中xmlHttp对象忙!");
setTimeout('datawrite()',1000);
}
}
datawrite();
}
?>
以上代码中循环读取项目表格中信息并通过XML打开kspf_conn1.php录入数据库,经检查kspf_conn1.php文件无误。但输入以上程序后出现缺少对象的错误,其中online_xm值代表项目名称,进入数据库后所可看到所有项目的名称均改为最后一个项目的名称。按理来说,写入的应当是不同的项目名称啊?
回复讨论(解决方案)
xmlHttp对象在哪定义的?
我加载了一个js脚本在php的最开始位置,这里略去了。
js 出错应在生成后的页面中排查
你在循环中定义 js 函数 function datawrite()。由于 $y 在循环中并未发生变化,所以只是重复定义 datawrite1 函数。很自然就只有最后一轮的定义才能生效
我自己解决了,原来是出了3楼的建议外还有xmlhttp生命周期的问题,应当在每次使用前都声明一下xmlHttp对象,因为这里是循环使用的,放在文件开头加载会出错!