2016-08-01 5 views
0

학교에서 사용 가능한 모든 성적을 나열하는 라디오 버튼 그룹이 있습니다. onchange 이벤트는 Ajax 요청을 발생시켜 특정 등급의 모든 사용 가능한 주체를 반환하고이를 목록 상자에 표시합니다. 안타깝게도 항상 그룹의 첫 번째 라디오 버튼의 값을 반환합니다. 전달되는 잘못된 라디오 버튼 값을 제외하고 다른 모든 것은 여전히 ​​작동합니다.라디오 버튼이 Ajax에서 올바른 값을 보내지 않음

라디오 버튼 대신 다른 목록 상자를 사용하면 프로세스가 완벽하게 작동합니다.

나는 출혈이 확실치 않다고 생각하지만, 나는 무엇을 볼 수 없다. 모든 제안을 감사하게 받았습니다.

<html> 
<body> 
<script language="javascript" type="text/javascript"> 
<!-- 
function ajaxFunction(sender){  
    var ajaxRequest; 
    ajaxRequest = new XMLHttpRequest(); 
    ajaxRequest.onreadystatechange = function(){ 
     if(ajaxRequest.readyState == 4){ 
      var ajaxDisplay = document.getElementById(sender + "div"); 
      ajaxDisplay.innerHTML = ajaxRequest.responseText; 
     } 
    } 
    // Now get the value from user and pass it to the server script. 
    var grade = document.getElementById(sender).value; //works 
    var queryString = "?grade=" + grade + "&subject=" + sender; 
    ajaxRequest.open("GET", "process_ajax_7.php" + queryString, true); 
    ajaxRequest.send(null); 
} 
//--> 
</script> 
    <form action="process.php" method="get" name="myform"> 
     <label><input type="radio" id = "subject1" name="subject1" onclick=ajaxFunction('subject1'); value="09">Grade 9</label> 
     <label><input type="radio" id = "subject1" name="subject1" onclick=ajaxFunction('subject1'); value="10">Grade 10</label> 
     <label><input type="radio" id = "subject1" name="subject1" onclick=ajaxFunction('subject1'); value="11">Grade 11</label> 
     <label><input type="radio" id = "subject1" name="subject1" onclick=ajaxFunction('subject1'); value="12">Grade 12</label> 
     <br><br> 
     <select id="subject2" name="subject2" onchange=ajaxFunction('subject2');> 
      <option> </option> 
      <option value="09"> Year 9 </option> 
      <option value="10"> Year 10 </option> 
      <option value="11"> Year 11 </option> 
      <option value="12"> Year 12 </option> 
      <option value="00"> Electives </option> 
     </select> 
    </form> 
    <div id='subject1div'>First results will display here</div><br><br><br><br><br><br><br><br><br><br><div id='subject2div'>Second results will display here</div> 
</body> 
</html> 
+2

처럼 끝 subject2을 독특한 뭔가를 변경하고 subject1하기 위해 온 클릭 –

+0

변경된 IDS에서 그것을 사용 , 등등.하지만 여전히 작동하지 않습니다. – Crookers

+0

업데이트 된 코드 표시 –

답변

0

여기, 당신의 코드의 onclick에서

  • 로 만드는 ajaxFunction 사용 sender.name에서 매개 변수로
  • this을 통과 sender.value을 각각
  • 을 대상 연도를 얻을하려는 변경의
  • 구식 onreadystatechange 대신 xhr.onload을 사용합니다. 그러나 xhr2를 지원하는 IE 버전을 확인하지 못합니다.
  • HTML에서 허용되지 않는 - -

는 그래서 모든 아이디의이 같은이

<html> 
<body> 
<script language="javascript" type="text/javascript"> 
function ajaxFunction(sender){  
    var ajaxRequest = new XMLHttpRequest(); 
    ajaxRequest.onload = function(){ 
     var ajaxDisplay = document.getElementById(sender.name + "div"); 
     ajaxDisplay.innerHTML = ajaxRequest.responseText; 
    } 
    // Now get the value from user and pass it to the server script. 
    var queryString = "?grade=" + sender.value + "&subject=" + sender.name; 
    ajaxRequest.open("GET", "process_ajax_7.php" + queryString, true); 
    ajaxRequest.send(null); 
} 
</script> 
    <form action="process.php" method="get" name="myform"> 
     <label><input type="radio" id = "subject1" name="subject1" onclick=ajaxFunction(this); value="09">Grade 9</label> 
     <label><input type="radio" id = "subject2" name="subject1" onclick=ajaxFunction(this); value="10">Grade 10</label> 
     <label><input type="radio" id = "subject3" name="subject1" onclick=ajaxFunction(this); value="11">Grade 11</label> 
     <label><input type="radio" id = "subject4" name="subject1" onclick=ajaxFunction(this); value="12">Grade 12</label> 
     <br><br> 
     <select id="subject2" name="subject2" onchange=ajaxFunction('subject2');> 
      <option> </option> 
      <option value="09"> Year 9 </option> 
      <option value="10"> Year 10 </option> 
      <option value="11"> Year 11 </option> 
      <option value="12"> Year 12 </option> 
      <option value="00"> Electives </option> 
     </select> 
    </form> 
    <div id='subject1div'>First results will display here</div><br><br><br><br><br><br><br><br><br><br><div id='subject2div'>Second results will display here</div> 
</body> 
</html> 
+0

의 subject 매개 변수에 document.getElementById (보낸 사람) .value를 사용합니다. 완벽하게 작동합니다. 감사합니다. – Crookers

관련 문제