2012-05-09 3 views
2

MySql 데이터베이스를 쿼리하는 PHP가 작성한 5 개의 드롭 다운 목록이있는 양식이 있습니다. 목록이 올바르게 빌드되고 있습니다.5 개의 드롭 다운 목록이있는 Ajax

사용자가 목록에서 선택하고 선택한 값을 기준으로 아래쪽에 양식을 채우길 원합니다.

첫 번째 목록에서 찾습니다. 여기

내가 1 목록에서 선택하면 2

다음
<td> 
<p><select size="1" name="D2" onchange=”showStudent(this.value);” > 
<?php while(list($id, $student_id)=mysql_fetch_row($result2)) { 
echo " 
<option value=\"".$student_id."\">".$student_id."</option>"; 
} 
?> 
</select></p> 
</td> 

는 자바 스크립트 코드

<script type="text/javascript"> 
function CreateXmlHttpObject() { //function to return the xml http object 
    var xmlhttp=false; 
    try{ 
     xmlhttp=new XMLHttpRequest();//creates a new ajax object 
    } 
    catch(e) {  
     try{    
      xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");//this is for IE browser 
     } 
     catch(e){ 
      try{ 
      req = new ActiveXObject("Msxml2.XMLHTTP");//this is for IE browser 
      } 
      catch(e1){ 
       xmlhttp=false;//error creating object 
      } 
     } 
    } 

    return xmlhttp; 
} 

function showStudent(str) 
{ 
// alert("Made it to show students"+ str); 
if (str=="") 
{ 
document.getElementById("student_data").innerHTML=""; 
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("student_data").innerHTML=xmlhttp.responseText; 
} 
} 
xmlhttp.open("GET","editstudent.php?d="+str,true); 
xmlhttp.send(); 
} 

</script> 

의 목록에서 코드 목록 여기에 1

<td width="90"> 
<p><select size="1" name="D1" onchange="showStudent(this.value);"> 
<?php while(list($id, $student_id)=mysql_fetch_row($result1)) { 
echo " 
<option value=\"".$student_id."\">".$student_id."</option>"; 
} 
?> 
</select></p> 
</td> 

의 코드 것입니다, 모든 그것이해야하는대로 일합니다. 그러나 목록 2-5에서 선택하면 아무 것도 없습니다. 내가 그 중 하나에서 처음으로 선택하더라도. 심지어 특정 목록 이름과 일치하는 함수의 이름을 변경 시도하고 여전히 첫 번째 작동합니다.

무엇이 누락 되었습니까?

+2

호기심에서 벗어나서, 두 번째 목록의 HTML에서 onchange 주위에 잘못된 큰 따옴표 태그가 있기 때문에 그럴 수 있습니까? '= "showStudent (this.value);">'는'= "이어야합니다. showStudent (this.value);" > ' – ametren

+0

네, 정말 고마워요. 지금까지 몇 시간 동안이 코드를 읽었습니다. 다시 고마워, 항상 신선한 눈을 도우십시오 – Hank

+0

괜찮 으면 그 대답으로 다시 게시하겠습니다. – ametren

답변

3

두 번째 목록의 html에서 onchange 주위에 잘못된 큰 따옴표 태그가 있기 때문입니다. =”showStudent(this.value);” >="showStudent(this.value);" >

이어야합니다. 이러한 이상한 따옴표는 단어, 전망 또는 다른 Office 응용 프로그램의 복사/붙여 넣기에서 나오는 경우가 많습니다. 그들은 간과하기 쉽습니다!

관련 문제