2016-12-06 1 views
-1

ich meinen ersten Ajax-Code haben, und ich bin ein wenig verwirrt, wie alle Werte von bestimmtenWie Ergebnisse aus JSON zur Liste Ajax

<html> 
<head> 
    <script type="text/JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <title>My first Ajax</title> 
</head> 

<body> 
    <script type="text/javascript"> 
    $(submit).click(function getResults() { 
     return $.ajax({ 
     type: "GET", 
     url: "https://www.cs.kent.ac.uk/people/staff/lb514/hygiene/hygiene.php", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     async: "true", 
     cache: "false", 
     success: function(msg) { 
      // success   
     }, 
     Error: function(x, e) { 
      // On Error 
     } 
     }); 
    }); 
    } 
    </script> 
    <input id="submit" name="submit" type="submit" value="Submit"> 
    </input> 
</body> 
</html> 

URL zu erhalten. Nach den Papieren habe ich unten Code gemacht, aber es tut nichts, um ehrlich zu sein. Ich würde gerne wissen, wie ich bestimmte Daten von dieser URL auflisten kann?

+1

Führen Sie in Ihrer Erfolgs- und Fehlerfunktion eine console.log (msg) aus und sehen Sie, was die Ausgabe ist. – rubenj

+1

Sie haben hier eine Menge Probleme. 1) 'async' und' cache' nehmen boolesche Werte, keine Strings 2) * Verwenden Sie nicht 'async: false'. * Es ist schrecklich. Wenn Sie die Konsole überprüfen, wird Ihnen sogar angezeigt, dass der Browser Sie nicht verwendet. 3) Es ist 'error', nicht' Error' 4) remove 'getResults' 5) Wo ist' submit' definiert? –

+0

Verstanden, wirklich gute Ratschläge. Ich folgte ihnen allen. Ich dachte, ich könnte dort direkt HTML-Tags verwenden? – Testko

Antwort

1

ist Es gibt viele Dinge, die Sie ändern müssen (die meisten von ihnen sind hier Bezug: http://api.jquery.com/jquery.ajax/):

  • eine neuere Version verwenden von jquery: http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
  • JS Schneidemaschine sho old kommt nach dem Element, da bei der Ausführung von JS kein Element definiert ist
  • $ (submit) ist ungültig. Es sollte $ ('# submit') als gültiger Selektor sein.
  • Verwenden Sie evt.preventDefault(), um Standardverhalten des Browsers zu verhindern
  • URL: Sie können keine Anfrage für eine andere Domäne, es sei denn, diese URL hat CORS aktiviert (Cross-Source-Ressourcenfreigabe), sonst wird die Anfrage nur auf dem gleichen funktionieren Domain als Ihre Seite. Siehe eine Option, wie lokal testen: Jquery .ajax() local testing
  • async: true -> das Standard, so dass Sie
  • datatype ommit können -> das ist in Ordnung, wenn Sie JSON vom Server
  • content erwarten -> das ist in Ordnung, aber Sie don 't etwas an den Server senden, es ist also nicht wirklich
  • Fehler benötigt: beginnt mit niedrigeren Brief

Hier den Code aktualisiert:

<html> 
    <head> 
      <script type="text/JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
      <title>My first Ajax</title> 
    </head> 
    <body> 
    <input id="submit" name="submit" type="submit" value="Submit"> 

    <script type="text/javascript"> 
    $("#submit").click(function(evt) { 
     evt.preventDefault(); 
     $.ajax({ 
     type: "GET", 
     url: "https://www.cs.kent.ac.uk/people/staff/lb514/hygiene/hygiene.php", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     cache: "false", 
     success: function(msg) { 
      // success 
     }, 
     error: function(x, e) { 
      // On Error 
     } 
     }); 
    }); 
    </script> 
    </body> 
    </html> 
+0

Du hast mir sehr geholfen. :-) – Testko

0

versuchen Sie dies:

$('#submit').click(function() { 
     $.getJSON(url,function(data){ 
      // Do whatever you need 
     }); 
}); 
+0

Während dieses Code-Snippet die Frage lösen kann, hilft [einschließlich einer Erklärung] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, die Qualität Ihres Posts zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. Bitte versuchen Sie auch nicht, Ihren Code mit erklärenden Kommentaren zu füllen, dies verringert die Lesbarkeit sowohl des Codes als auch der Erklärungen! – kayess

0

Zunächst einmal sollte Ihr Skript nach Input-Tag definiert werden. Stellen Sie außerdem sicher, dass Sie über richtige Header verfügen, um auf die URL zuzugreifen, oder dass es einen Fehler gibt, der sich auf Access-Control-Allow-Header bezieht.

0

Verwendung Schleife for-in

$(submit).click(function getResults() { 
 
     return $.ajax({ 
 
     type: "GET", 
 
     url:"https://www.cs.kent.ac.uk/people/staff/lb514/hygiene/hygiene.php", 
 
     contentType: "application/json; charset=utf-8", 
 
     dataType: "json", 
 
     async: "true", 
 
     cache: "false", 
 
     success: function (msg) { 
 
        for (var i in data){ 
 
         // data[i].something, etc 
 
       }   
 
      }, 
 
      Error: function (x, e) { 
 
       // On Error 
 
      } 
 
     }); 
 
    });

Verwandte Themen