[javascript]problema funzione per webapi

Lella.Raffa

Nuovo Utente
26 Gen 2018
3
0
1
27
Ciao a tutti,
io avrei un problema... devo creare un sito che reperisca dati da 2 api: wikipedia e crossref.
Con wikipedia non ho problemi ma non mi stampa nulla riguardo a crossref..
Vi posto qui il codice nel caso qualcuno di voi scoprisse il problema..
Inanto grazie mille a tutti :);)

Questa è la funzione per recuperari i dati da crossref:
Codice:
function readArticles(topic)
{
   var url = "https://api.crossref.org/works?query.title=" + topic;
   $.getJSON(
       url,
       function(data) {
           var jsonObj = data.message.items;
           var count = 0;
           var articles =[];
           var stamp = "\n";
           for(i=0; i<jsonObj.length; i++){
               var title = jsonObj.title.toString();
               if(title.toLowerCase().search(topic.toLowerCase()) != -1)
               {
                   articles[count] = jsonObj;
                   stamp = stamp + jsonObj.URL + "\n";
                   count++;
               }
           }
           if(count>0)
           {
               var result = "";
               if(!isInDocument("#External_links"))
               {
                   result = result + '<h2 id="External_links">External links</h2>';
               }
               result = result + "<h2>Crossref</h2><ul>";
               for(i=0; i<articles.length; i++)
               {
                   url = articles.URL;
                   result = result + '<li><a href="' + url + '" target="_blank">' + articles.title + ' <span class="glyphicon glyphicon-new-window"></span></a></li>';
               }
               result = result + '</ul>';
               $("#content").append(result);
           }
       }
   );
};
ps: se solo dalla funzione non dovreste capire, vi posto l'intero progetto ;)
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.292
331
83
@Lella.Raffa
Da regolamento del forum, come tutti noi sei tenuta ad usare il tag
code.gif
quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box inserisci 2.png.JPG

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

linoma

Utente Attivo
1 Mar 2017
79
4
8
forse questa
Codice:
var title = jsonObj.title.toString();
va cambiata con

Codice:
var title = jsonObj[i].title.toString();
 

marino51

Utente Attivo
28 Feb 2013
2.931
166
63
Lombardia
dovresti approfondire come fare il debug ....
in ogni caso il resto lo sistemi tu
HTML:
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type"
 content="text/html; charset=UTF-8">

        <title>Test Crossref</title>

<script type='text/javascript' src='http://localhost/test_site/php/jquery.min.js'></script>

<script type='text/javascript'>
function readArticles(topic)
{
    var topic = topic.toString();
    var topic = topic.toLowerCase();

    var url = "https://api.crossref.org/works?query.title=" + topic;
    $.getJSON
    (
        url,
        function(data)
        {
            var jsonObj = data.message.items;
            var count = 0;
            var articles =[];
            var stamp = "\n";
            var jsonLen = jsonObj.length;

            alert('jsonLen : '+jsonLen);

            for(i=0; i<jsonLen; i++)
            {
                var title = jsonObj[i].title.toString();
                var title = title.toLowerCase();

                if(title.search(topic) != -1)
                {
                    articles[count] = jsonObj[i];
                    stamp = stamp + jsonObj[i].URL + "\n";
                    count++;
                }
            }
            if(count>0)
            {
                var result = "";
                var articlesLen = articles.length;

                alert('articlesLen : '+articlesLen);

//              if(!isInDocument("#External_links"))
//              {
//                  result = result + '<h2 id="External_links">External links</h2>';
//              }
                result = result + "<h2>Crossref</h2><ul>";
                for(i=0; i<articlesLen; i++)
                {
                    url = articles[i].URL;
                    result = result + '<li><a href="' + url + '" target="_blank">' + articles[i].title + ' <span class="glyphicon glyphicon-new-window"></span></a></li>';
                }
                result = result + '</ul>';

                alert('result : '+result);

//              $("#content").append(result);
            }
         }
    );
};

readArticles(1);

</script>
    </head>
    <body>
    </body>
</html>
provato con ie11, giusto per intravedere il risultato
 

Allegati