<?php
query0=mssql_query("select * from tb_xm where xm_pcid='1'");
$y=1; 
while($myrow0=mssql_fetch_array($query0)){
?>
function datawrite<?php echo $y?>(){
if(xmlHttp.readyState==4 || xmlHttp.readyState==0){
xmlHttp.open("GET","kspf_conn1.php?online_xm="+"<?php echo $myrow0["xm_name"]?>"+"&online_user="+"<?php echo $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<?php echo $y?>()',1000);
}
}
datawrite<?php echo $y?>();
<?php 
}
?>
以上代码中循环读取项目表格中信息并通过XML打开kspf_conn1.php录入数据库,经检查kspf_conn1.php文件无误。但输入以上程序后出现缺少对象的错误,其中online_xm值代表项目名称,进入数据库后所可看到所有项目的名称均改为最后一个项目的名称。按理来说,写入的应当是不同的项目名称啊?JavaScriptphp缺少对象

解决方案 »

  1.   

    我加载了一个js脚本在php的最开始位置,这里略去了。
      

  2.   

    js 出错应在生成后的页面中排查你在循环中定义 js 函数 function datawrite<?php echo $y?>()。由于 $y 在循环中并未发生变化,所以只是重复定义 datawrite1 函数。很自然就只有最后一轮的定义才能生效
      

  3.   

    我自己解决了,原来是出了3楼的建议外还有xmlhttp生命周期的问题,应当在每次使用前都声明一下xmlHttp对象,因为这里是循环使用的,放在文件开头加载会出错!