2014-01-31 4 views
0

PHP와 JavaScript 코드에 문제가 있습니다."잡히지 않은 TypeError : null의"checked "속성을 읽을 수 없습니다.

여기에 간단한 코드를 입력했습니다. 그래서 첫 걸음, 나는 "Walking"여행을 선택하고 제출하고 싶습니다. 나는 나의 여행 번호 50을 얻는다. 그리고 그것은 체크 박스를 보여준다. 그 후, 나는 체크 박스를 선택하고 "체크 박스 선택"버튼을 클릭하고 싶습니다. 그런 다음 myFunction()으로 전화해야합니다.

하지만 오류

Uncaught TypeError: Cannot read property 'checked' of null

있어 내가 <head></head> 내부 myFunction()을 넣어 노력 때문에 myFunction() 내부의 코드는 결과를 얻는 것이 아니라, 그것은뿐만 아니라 작동하지 않았다. 의견이 있으십니까?

<html> 
<head></head> 
<body> 
<form action = "thispage.php" method = "post"> 
<select name="typesSelect"> 
    <option value="">Walking</option> 
</select> 
<input type="submit" name="searchFormSubmit" value="Search" /> 
</form> 

<button onclick="myFunction();">Select Checkbox</button> 

<?php 
$trip = 1; 
if(isset($_POST['searchFormSubmit'])) 
{ 
$trip = 50; 
?> 
<input type='checkbox' id="myTrip<?php echo $trip;?>"> 

<?php} 

?> 


<script> 
function myFunction() 
{ 

trips = <?php echo JSON_encode($trip); ?>; 
var array; 
initialize(); 
for(var i=0;i<trips.length;i++){ 
      if(document.getElementById("myTrip"+trips[i]+"").checked){        
       $.get('/ajax.php?function=geoData&trip_id='+trips[i], function(data){data=JSON.parse(data);array=data;addLine(data)}) 
     } 

} 
} 
</script> 
</body> 
</html> 
+0

할당하기 전에 여행을 선언하십시오. 아니면'var trips = ; ' –

+1

자바 스크립트에서 # myTrip0부터 # myTrip50까지 반복하고 있지만 PHP에서는 단 하나의 체크 박스 만 만들고 있습니다. 아마 당신의 예제에서 너무 많은 코드를 자르지 만, 당신은 # myTrip50이되도록 입력을 하드 코딩하고 있기 때문에 ID가 없기 때문에 javascript 루프가 예외를 던질 것이고 당신은 정의되지 않은 요소 – lonewolf217

답변

0

@ lonewolf217은 주석에 언급 된대로 존재하지 않는 요소를 찾고 있습니다.

이 비슷한 일을 수행해야합니다

for(var i=0;i<trips.length;i++){ 
      var elem = document.getElementById("myTrip"+trips[i]+""); 
      if(elem && elem.checked){        
       $.get('/ajax.php?function=geoData&trip_id='+trips[i], function(data){data=JSON.parse(data);array=data;addLine(data)}) 
     } 

} 

에서 getElementById는 항상 요소가 반환되었는지 확인하여 때마다이 속성을 찾고 전에 존재한다.

관련 문제