2016-07-04 4 views
0

私は人がキーワードを入力できるHTML/CSS検索バーを持っていて、クリックすると、自分のOpen States JSON APIコードが、そのキーワードと一致するNew Jersey州の請求書を返します。 JSON APIの戻り値に可変URLアドレスをハイパーリンクするにはどうすればよいですか?

Screenshot of a Result

Search Bar Screenshot

私はニュージャージー州議会サイト上の自分のページにハイパーリンクされるように返された法案のタイトルをしたいが、私だけでリターンをハイパーリンクする方法についての指示を見つけることができます静的なサイト。ここで

は、これまでのところ、私のJavaScriptコードである(APIキーを削除して):

e.preventDefault(); 
    // console.log($("#billID").val()); 
    var billSearchValue = $("#billID").val(); 
    if(billSearchValue=='') 
    { 
     alert("Enter Desired Query Parameters"); 
    } else{ 
     // console.log(billSearchValue); 
    } 
    var searchQuery = "&q=" + billSearchValue; 
    var baseUrl = "http://openstates.org/api/v1/bills/?state=nj"; 
    var apiKey = ""; 
    var apiKeyParam = "&apikey="; 
    var apiKeyParams = apiKeyParam + apiKey; 
    var urlJSON = baseUrl + searchQuery + apiKeyParam + apiKey; 
    // console.log(urlJSON); 
    $.getJSON(urlJSON, function (data) { 
     var billsVar = []; 
     $.each(data, function(key, val) { 
      billsVar.push(val); 
     }); 
     for (var i = 0; i < billsVar.length; i++) { 
      var billList = "<li>Bill <ul class=\"ul-sub\">" 
      var billTitle = "<li><strong>Bill Title</strong>: " + billsVar[i]['title'] + "</li>"; 
      var billCreatedAt = "<li><strong>Bill Created</strong>: " + billsVar[i]['created_at'] + "</li>"; 
      var billUpdatedAt = "<li><strong>Bill Updated</strong>: " + billsVar[i]['updated_at'] + "</li>"; 
      var billID = "<li><strong>ID</strong>: " + billsVar[i]['id'] + "</li>"; 
      var billChamber = "<li><strong>Bill Chamber</strong>: " + billsVar[i]['chamber'] + "</li>"; 
      var billState = "<li><strong>Bill State (Probably Don't Want/Need This)</strong>: " + billsVar[i]['state'] + "</li>"; 
      var billSession = "<li><strong>Bill Session</strong>: " + billsVar[i]['session'] + "</li>"; 
      var billType = "<li><strong>Bill Type</strong>: " + billsVar[i]['type'] + "</li>"; 
      var billSubjects = "<li><strong>Subjects</strong>: " + billsVar[i]['subjects'] + "</li>"; 
      var billBillID = "<li><strong>Bill ID</strong>: " + billsVar[i]['bill_id'] + "</li>"; 
      var billOutput = billList + billTitle + billCreatedAt + billUpdatedAt + billID + billChamber + billState + billSession + billType + billSubjects + billBillID + "</ul></li>"; 
      $("#jsonlist").append(billOutput); 
     } 
    }); 
}) 

});

答えて

1

研究のビットの後、私は法案のハイパーリンクは次のようであることを参照してください。

http://openstates.org/nj/bills/{Bill Session}/{Bill ID}/

私はAPIキーを持っていないので、私は自分のコードをテストすることはできませんが、解決策のようなものが考えられます。

var billTitle = '<li><strong>Bill Title</strong>: ' 
    + '<a href="http://openstates.org/nj/bills/' + 
    billsVar[i]['session'] + '/' + billsVar[i]['bill_id'].split(' ').join('') + '/">' 
    + billsVar[i]['title'] + '</a></li>'; 
+0

ありがとうございます!私はそれを試して、今私は "Uncaught ReferenceError:タイトルが定義されていません。 – Karissa

+0

ああ申し訳ありませんが、私はローカル変数でテストしていたため、残しました。今修正されました。 – yuriy636

+0

申し訳ありませんが、何らかの理由でハイパーリンクが原因で404エラーが発生しています。 – Karissa

関連する問題