日期:2014-05-17  浏览次数:20422 次

ajax+php的问题
有好几个checkbox循环出来,还有个文本框
HTML code
<input name="ckID[]" type="checkbox" id="<?='ckID'.$row['MIS_id']?>" value="<?=$row['MIS_id']?>" onclick="showInfor(this.value)" />
<div id="txtHint">
<input name="txtid" type="text" id="txtid" />
</div>

以下是AJAX:
JScript code
function showInfor(str) { 
    //document.getElementById("txtid").value=str;
    //var str = document.geElementById("ckID").value;
    //document.write(str);
    var xmlhttp;
    if (id.length==0)
      {
      document.getElementById("txtid").value="";
      return;
      }
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        //document.getElementById("show").innerHTML=xmlhttp.responseText;
        document.getElementById("txtid").value=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","showSettle.php?q="+str,true);    
    xmlhttp.send();
}


然后是对于的php页面
PHP code
$db = mysql_connect("localhost","root","1234");
mysql_select_db("it database",$db);

$q=$_GET['q']; // connecting to database and stuff...  
echo $q;
  
$temp = mysql_query("SELECT MIS_id FROM materialinstorage WHERE MIS_id = '$q' "); 
echo $temp;

$row = mysql_fetch_array($temp);  
$id =$row['MIS_id'];  
echo $id;

现在好像是php那页面不执行,没反应啊。
我在ajax里执行document.write(str);可以得到数据的。
请问哪里出错了呀

------解决方案--------------------
弄个google浏览器或者firebug一看就知道了!
------解决方案--------------------
探讨

他说我id为定义
我把ajax里的id.length==0改成了xmlhttp==null
可效果还是一样的,状态栏里也没显示网页错误了

------解决方案--------------------
if (id.length==0)
这个 id 没有定义
------解决方案--------------------
一步一步调试。首先alert(xmlhttp.responseText); 看能不能弹出php端的输出。
------解决方案--------------------
HTML code


document.getElementById("txtid").value="";应该是这句,这是什么错啊 

//跟你这句没关系的,这句只是设置文本框中的值为空
if (id.length==0){  //是这段的处理,主要是id.length这个没有定义,不懂这段做什么,是判断复选框是否被选? 检查下这段
      document.getElementById("txtid").value="";
      return;
  }