[javascript]problema funzione per webapi

Lella.Raffa

Nuovo Utente
26 Gen 2018
3
0
1
31
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:
@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
 
forse questa
Codice:
var title = jsonObj.title.toString();

va cambiata con

Codice:
var title = jsonObj[i].title.toString();
 
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

  • upload_2018-1-27_10-43-55.png
    upload_2018-1-27_10-43-55.png
    15,8 KB · Visite: 395

Discussioni simili