2016-03-22 7 views
2

Ich bin sehr neu in Javascipt Infact Dies ist mein erstes Programm. ich habe html javascrpit Code geschriebenen Daten in Drop-Down von Python django databse shoow, aber wenn ich es laufen, ist es nicht Daten meinen Code zeigt istDaten werden nicht im Dropdown angezeigt

<!DOCTYPE html> 
<html> 
    <title>CP Project</title> 
    <head> 

    </head> 
    <body> 
     Country : <select class="country" onchange="changeCountry(this)"> 

     </select><br/> 
     State : 
     <select class="state" onchange="changeState(this)"> 

     </select><br/> 
     City : 
     <select class="city" onchange="changeCity(this)"> 

     </select> 

     <script> 
      var country = document.querySelector(".country"); 
      var state = document.querySelector(".state"); 
      var city = document.querySelector(".city"); 

      var countryList = {}; 
      var stateList = {}; 
      var cityList = {}; 
      // Access-Control-Allow-Origin: http://127.0.0.1:8002/data/ ; 
      Access-Control-Allow-Methods: POST, GET, OPTIONS; 

      getCountryList(function(response){ 
       countryList = response; 
       var tempStr = ""; 
       /*for(var i in response.result){ 
        tempStr+="<option value="+i+">"+response.result[i]+"</option>"; 
       }*/ 
       for(var i=0;i<response.length; i++){ 
        tempStr+="<option value="+response[i].countryId+">"+response[i].country+"</option>"; 
       } 
       country.innerHTML = tempStr; 
      }); 

      function changeCountry(this_){ 

       getStateList(this_.value, function(response){ 
        stateList = response; 
        var tempStr = ""; 
        /*for(var i in response.result){ 
         tempStr+="<option value="+i+">"+response.result[i]+"</option>"; 
        }*/ 
        for(var i=0;i<response.length; i++){ 
         tempStr+="<option value="+response[i].state_id+">"+response[i].state+"</option>"; 
        } 
        http.open("GET", "http://127.0.0.1:8002/data/country/", true); 
        http.send(); 
        state.innerHTML = tempStr; 
       }); 
      } 

      function changeState(this_){ 

       getCityList(this_.value, function(response){ 
        cityList = response; 
        var tempStr = ""; 
        /*for(var i in response.result){ 
         tempStr+="<option value="+i+">"+response.result[i]+"</option>"; 
        }*/ 
        for(var i=0;i<response.length; i++){ 
         tempStr+="<option value="+response[i].cityid+">"+response[i].city+"</option>"; 
        } 
        city.innerHTML = tempStr; 
       }); 
      } 


      function getCountryList(callBackFun){ 
       var http = new XMLHttpRequest(); 
       http.onreadystatechange = function(){ 
        if (this.readyState === 4){ 
         callBackFun(JSON.parse(this.responseText)); 
        } 
       }; 
       http.open("GET", "http://127.0.0.1:8002/data/country/", true); 
       http.send(); 
      } 

      function getStateList(countryCode, callBackFun){ 
       var http = new XMLHttpRequest(); 
       http.onreadystatechange = function(){ 
        if (this.readyState === 4){ 
         callBackFun(JSON.parse(this.responseText)); 
        } 
       }; 
       http.open("GET", "http://127.0.0.1:8002/data/state?count_id="+countryCode, true); 
       http.send(); 
      } 

      function getCityList(stateCode, callBackFun){ 
       var http = new XMLHttpRequest(); 
       http.onreadystatechange = function(){ 
        if (this.readyState === 4){ 
         callBackFun(JSON.parse(this.responseText)); 
        } 
       }; 
       http.open("GET", "http://127.0.0.1:8002/data/cities/?sta_id="+stateCode, true); 
       http.send(); 
      } 
     </script> 
    </body> 
</html> 

es zeigt zwei

1.SyntaxError: missing ; before statement 
2.The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol. 
+0

Sollte die Zeile 'Access-Control-Allow-Methoden: POST, GET, OPTIONS;' kommentiert werden? –

+0

wenn ich dies kommentiert dies einen Fehler werfen ' Cross-Origin-Anfrage blockiert: Die gleiche Herkunft Richtlinie verbietet das Lesen der Remote-Ressource unter http://127.0.0.1:8002/data/country/. (Grund: CORS-Header 'Access-Control-Allow-Origin' fehlt). SyntaxError: JSON.parse: unerwartetes Ende der Daten in Zeile 1 Spalte 1 der JSON-Daten " –

+0

Ich denke,' Access-Control-Allow-Methoden: POST, GET, OPTIONS; 'würde einen Javascript-Fehler verursachen und würde Ihre getCountryList-Aufruf wird nicht ausgeführt. Weil der Fehler JS in seinen Spuren stoppt. Die 'Access-Control ...' ist etwas, das in den Header des Web-Service unter '/ data/country' gesetzt werden soll. Obwohl ich erwarten würde, dass der Fehler' Uncaught SyntaxError: Unexpected token: 'lautet – Shanimal

Antwort

0

Nun warnen Vermutlich fehlt dir ein Semikolon.

Und

<meta charset="UTF-8"> 

Zugabe sollte den Boden Fehler lösen.

Verwandte Themen