2013-04-05 2 views
0

임 있는지, AJAX URL 업데이트

는 그래서 같은 AJAX 호출이있는 외부은 ajax.js 파일이 내가 시세 및 URL과 같이라는 두 개의 전역 변수를 가지고 호출 : 나는 사용자 시세 기호 (예 : GOOG)의 종류와가 버튼을 클릭 입력 상자를 가지고 내 HTML 파일에서

var ticker = 'AAPL' 
var url = 'http://blahblahblah' + ticker 

을 그 U 것 AJAX 호출이 새 URL로 다시 수행되도록 시세 변수를 pdate하십시오.

<form id="form"> 
      <h3>Enter the ticker symbol of the company you wish to view:</h3> 
      <input type="text" id="userInput"> 
      <button onclick="myFunction()">Try it</button> 
     </form> 

     <script type="text/javascript" src="ajax.js"> 
     <script> 
     function myFunction() 
     { 
       //old value 
       alert(ticker); 

       ticker = document.getElementById('userInput').value; 

       //new value 
       alert(ticker); 
     } 
     </script> 

이 코드는 티커 변수를 변경하지만 AJAX 호출은 여전히 ​​이전 증권 시세 표시기 URL로 수행됩니다. 그게 제대로 할당되지 않은 것 같아? 임 아주 AJAX에 새로운하지만이 자습서 온라인이 문제를 설명하는 찾을 수 없습니다.

감사

답변

0

게시 한 코드에서 알 수있는 한, 페이지가로드 될 때 아약스 루틴이 호출되므로 결과에 기본 URL/시큐리티 만 표시되는 이유가 설명됩니다. 당신은 ajax.js 파일에서

:

function getSymbolInfo(ticker) { // consider passing ticker to this function instead of using a global var 
    $.ajax({ 
     url: url + ticker, 
     success: function(data, status) { 
      // show results 
     } 
    }); 
} 

과의 MyFunction에서 :

사용자가 기호를 입력 한 후

당신은 함수에서 아약스 루틴을 포장하고 호출 할 필요가

function myFunction() 
{ 
    var ticker = document.getElementById('userInput').value; 
    getSymbolInfo(ticker); 

} 
+0

이 코드는 편집되었지만 AJAX 호출은 여전히 ​​수행되지 않습니다. 의견 있으십니까? http://jsfiddle.net/BPPyz/ – James

+0

Fiddle을 조금 수정 한 후 POST 요청을 사용해야한다는 오류가 발생하지만 'post'형식의 ajax 루틴을 제공 한 후에도 동일한 오류가 발생합니다. 아마도이 URL은 여러분이 사용하는 것과 다른 것일 수도 있습니다. 새로운 jsFiddle : http://jsfiddle.net/TxYNU/ –

1

문자열은 URL이 시세를 변경하는 경우에도 일정이 될 것입니다 즉, 자바 스크립트에서 변경할 수 있습니다. 다음과 같이하십시오 :

$(function() { 
    $.ajax({ 
     url: "http:/blah" + ticker, 
     success: function(data, status) {} 
    }); 
}); 

EDIT : 이제 생각해 보면, 문자열을 변경할 수 없다는 것과 관련이 있습니다. url = "http:/" + ticker을 수행하면 값이 ticker 인 클로저가 작성되지 않고 단순히 새로운 문자열 값이 작성되어 url에 저장됩니다. 새 값을 만든 후에는 어떤 식 으로든 ticker에 연결되지 않습니다.

+0

제안한 방법을 시도했지만 여전히 작동하지 않습니다. 오류가 발생했습니다. – James