2016-09-03 2 views
-2

나는 선택된 제품의 가격을 보유하는 calculated_price이라는 전역 변수를 가지고 있습니다. 나는 기능이 전역 변수의 값을 변경 한 후 다른 기능과 나는 AJAX POST 요청으로 서버에 제출 :자바 스크립트가 전역 변수에 액세스 할 수 없습니다.

var calculated_price; 

function calculatePrice() { 
    calculated_price = $$('.myInput').val(); 
    $$('.price-holder').text(calculated_price); 
} 

function submitOrder(calculated_price) { 
    if(calculated_price !== null || calculated_price !== '') { 

     $$.post('http://www.example.com/payment.php', { price: calculated_price}, 
     function(data) { 

      alert('Data: ' + data); 

     }); 

    } 
} 

내가 Framework7을 사용하고, 그래서 내가 사용하는 JS 프레임 워크는 Dom7입니다 그러나 이것은 jQuery 및 $$. post 함수와 매우 유사합니다. calculated_price variable에 액세스 할 수없는 것 같습니다. 나는이 코드를 어디에서든지 내 코드에서 다시 선언하지 않았다. (전역 적으로 선언 할 때를 제외하고는 어디에도 그 앞에 var을 넣지 않았다.) 왜이 변수가 마지막 함수가 실행될 때까지 손실되는지 (submitOrder)? 변수가 존재하고 가치가 있다는 것을 알고 있습니다. 왜냐하면 calculatePrice 함수에서 계산 된 가격을 HTML 요소 안에 넣었으므로 정확하게 가격을 표시하기 때문입니다.

+0

액세스 할 수 없다는 것은 무엇을 의미합니까? 오류가 있습니까? 어떤 줄이 오류를 던집니까? 등 – Utkanos

+0

'if (calculated_price! == null) && calculated_price! == ')'문제가 생겼습니다 :'if (calculated_price! == null && calculated_price! ==')' –

+0

@Utkanos 오류가 없습니다. 그렇지 않으면 이미 해결했습니다. 그냥 아무것도 반환하지 않습니다. 나는 submitOrder 함수 내에서 calculated_price를 경고하고 그냥 비어 있습니다. 오류 또는 아무것도 없습니다. –

답변

4

calculated_price을 전역으로 선언하고 함수 매개 변수와 같은 이름을 사용합니다.

var calculated_price; 

function submitOrder(calculated_price) { <---- error is here 

두 가지 변수가 있습니다. submitOrder를 호출하면 computed_price를 매개 변수로 보냅니 까?

+0

그래서 뭐가 잘못 되었나요? –

+0

두 가지 변수가 있습니다. submitOrder를 호출하면 calculated_price를 매개 변수로 보내십니까? – Robert

+0

아, 이제 알겠습니다. 함수 매개 변수 변수의 이름을 변경했고 이제는 작동합니다. 고마워 친구! –

1

귀하의 코드는 함수 submitOrder를 호출 당신은 아마 그 때문에의

if(calculated_price !== null && calculated_price !== '') { 

말을 의미

if(calculated_price !== null || calculated_price !== '') { 

라인을 제외하고 잘 보이는, 아약스 요청도 수행한다 calculated_price이 정의되지 않은 경우

+0

이것은 전역 변수 문제를 어떻게 해결합니까? –

+1

그렇지 않습니다. 하지만'submittedOrder' 함수가'calculated_price'가 초기화되고 조건부 테스트가 참이고 잘못된 ajax 요청이 오르기 전에 호출되는 것으로 의심됩니다. 그렇다면 OP는 그것이 글로벌 변수 문제로 인한 것이라고 생각합니다. 나는 그것이 유효한 이론이라고 생각한다. – redneb

관련 문제