2017-01-26 1 views
0

내 전역 변수에 문제가있어 도움을받을 수 있기를 바랍니다.자바 스크립트 결과의 전역 변수는 항상 정의되지 않음

<li> 
<a href="<?php echo site_url("adminController/questionAdd/".$row->subjectid); ?>" id="<?php echo $row->subjectid; ?>" class="subject">Add Question</a> 
</li> 

가 지금은 자바 스크립트 click()에 의해이 줄 내 ID를 통과하는 선에서

$(document).ready(function() { 
     var correctAnswer; 
     var subId; 

     $(".subject").click(function() { 
      subId = ($(this).attr('id')); //passed the id variable into the global variable 
      alert(subId) // when I alert this it returns the value 
     }); 

가 지금은이 라인에서 동일한 $ (문서) .ready (함수를 전역 변수를 사용()

$('#form-user').submit(function(e){ 
       e.preventDefault(); 

       var me = $(this); 
       var correct = correctAnswer; 
       var passedSubId = subId; // passed the global variable to this local variable 
       console.log(correct); // this is okey 
       console.log(subId); // this is undefined 
}); 

결과

i 
undefined 
+0

'document ready'와'form submit'을 정확히 닫았습니까? –

+0

답변 해 주셔서 감사합니다. 예, 올바르게 닫았습니다. –

답변

0

귀하의 코드가 작동하지 않습니다.

내가하고있는 일은 링크를 클릭하면 페이지 A에서 페이지 B로 이동하고 페이지 B에서 페이지 A에 설정 한 변수를 사용하려는 것입니다. 미안하지만 절대로 작동하지 않습니다. 페이지를 새로 고침 할 때 전체 스크립트가 다시 실행되고 이전 페이지에서 수행 한 작업을 알지 못합니다. 당신은 (자신이) URL에서 해당 ID를 취할 중 하나가 또는 local storage 예를 들면 저장할 것,이 시도 :

$(document).ready(function() { 
    var correctAnswer; 
    var subId; 

    $(".subject").click(function() { 
     subId = ($(this).attr('id')); //passed the id variable into the global variable 
     alert(subId) // when I alert this it returns the value 
     localStorage.setItem('subId', subId); 
     console.log('id stored'); 
    }); 

    $('#form-user').submit(function(e){ 
      e.preventDefault(); 

      var me = $(this); 
      var correct = correctAnswer; 
      var passedSubId = subId; // passed the global variable to this local variable 
      console.log(correct); // this is okey 
      console.log(subId); // this is undefined 

      storedSubId = localStorage.getItem('subId'); 
      alert(storedSubId); 
      console.log('stored id'); 
    }); 
}); 

어쨌든 URL에서 그것을 점점 확실히 당신이 가고 싶은 방법입니다

+1

답변 해 주셔서 감사합니다. 내 코드의 문제입니다. 나는 이미 지난주에 그것을 고쳤다. 하지만 정말 감사드립니다. 고마워요. –

1

window을 사용하면 전역 변수를 선언 할 수 있습니다. h 은 사용하지 않는 것이 좋습니다.

이 같은 전역 변수를 선언 할 수 있습니다 : 당신이 생각으로

window.yourVariable = "something"; 
+0

답장을 보내 주셔서 감사합니다.하지만 작동하지 않았습니다. –

+0

@JohnHora 경고를 생성하는 곳에서'window.subId = subId'를 시도 했습니까? –

+0

내 전역 변수를'windows.subId'로 선언 할 때 문제가 발생하면 'Uncaught ReferenceError : subId is notdefined'가됩니다. –

관련 문제