2013-07-04 10 views
0

저는 웹 프로그래밍을 처음 접했고 몇 시간 동안 벽에 머리를 두근 거리게했습니다.왜이 getJSON이 작동하지 않습니까?

var city = document.getElementById("cityname").value;을 setCityName() 함수 안에 넣고 시도해 보았지만 불행히도이 텍스트 상자에 무언가를 전달하더라도 도시에 "null"이 표시됩니다.

나는 누군가가 내 실수를보고 getJSON과 웹 프로그래밍에 대해 뭔가를 가르쳐주기를 바라고있다. 감사!

<!DOCTYPE html> 
<html> 
<head> 
<style>img{ height: 100px; float: left; }</style> 
</head> 
<body> 
     <form> 
City name: <input type="text" id="cityname" name="city" value=""><br /> 
Latitude: <input type="text" id="latitude" name="lat" value=""><br /> 
<input id="Subb" type="submit" value="Submit" onclick="ttest()"> 
</form> 

<script> 

var a; 
function ttest() 
{ 
    a = document.getElementById("cityname").value; 
    setCityName(a); 
} 

function setCityName(a) 
{ 
    var cityURL = "http://api.geonames.org/postalCodeSearchJSON?placename="+a+"&maxRows=10&username=demo"; 
    $.getJSON(cityURL, function(data) {alert("Hi");}) 
     .success(function() {alert("testSuccess");}) 
     .fail(function() {alert("testFail");}); 
} 


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

코드를 시도 할 때 어떤 오류가 있습니까? "일반적으로 웹 프로그래밍." 너무 광범위하고 문제를 충분히 설명하지 못합니다. 이 특정 문제를 해결하기 위해 무엇을 시도하고 있습니까? –

+0

안녕 빅터; 간단한 형태로, 입력 HTML 태그에 의해 형성된 텍스트 상자에 도시 이름에 사용자 유형을 넣으려고합니다. 거기에서 사용자가 Submit 상자를 클릭하면 Javascript 함수가 호출되어 JSON 웹 서비스를 호출하여 입력 한 도시의 우편 번호를 조회합니다. 긴 형태로, 제 문제는 setCityName 함수의 "getJSON"부분을 추가 할 때마다 많은 문제가 발생한다는 것입니다. 나는 공간이 부족하지만, 내 브라우저 나 설정이 될 수 있다고 생각하기 시작했다. 나는 우분투에있어, 그리고 내 Windows 설치에 잘 작동하는 것 같습니다. 나는 해킹을 계속 할 것이다. –

+0

"문제가 많이 생겼습니다"아직 구체적이지는 않지만 코드를 실행하는 데 문제가 있으면 Racso가 제공 한 답변을 살펴보십시오. "나는 공간이 부족합니다"라는 말은 코드가 아닌 다른 것 같습니다. json 요청에서 오는 것이 이상합니다. –

답변

0

잘 jsFiddle : http://jsfiddle.net/HFKnC/에 따르면 작동합니다! 하지만 GET 요청을 사용하고 있고 API가 POST 요청을 원한다. 그래서 그것이 제대로 작동합니다 (이 jsFiddle에서 작동하도록하기 위해 약간의 변화)

$.post(); 

대신

$.getJSON(); 
1

내가 코드를 테스트 한 취하여.

자바 스크립트 :

var a; 

function ttest() { 
    a = document.getElementById("cityname").value; 
    setCityName(a); 
} 

function setCityName(a) { 
    var cityURL = "http://api.geonames.org/postalCodeSearchJSON?placename=" + a + "&maxRows=10&username=demo"; 
    console.log(cityURL); 
    var city = document.getElementById("cityname").value; 
    console.log(city); 
    $.getJSON(cityURL, function (data) { 
     console.log("Hi"); 
    }) 
     .success(function (data) { 
     console.log("testSuccess"); 
     console.log(data) 
    }) 
     .fail(function() { 
     console.log("testFail"); 
    }); 
} 

Check it out live here.

제안 : 전역 변수와 함수 매개 변수 모두에 동일한 이름 (a)을 사용하지 마십시오.

관련 문제