#javascript #solr
#javascript #solr
Вопрос:
Я новичок в javascript. Я хочу заполнить свою таблицу из результатов запроса apache solr, когда нажимаю на кнопку поиска. Я сделал что-то вроде этого
<script>
function getDocuments(){
var strSO=document.getElementById("ngramBoxstrSO").value;
var PackName=document.getElementById("ngramBoxPackName").value;
var DocType=document.getElemenById("ngramBoxDocType").value;
SolrJava SJ = new SolrJava();
SolrDocumentList list = SJ.getSolrList(strSO,PackName,DocType);
var table=document.getElementById("example");
var row=table.insertRow(2);
var cell1=row.insertCell(0);
var cell2=row.insertCell(1);
var cell3=row.insertCell(2);
var cell4=row.insertCell(3);
var cell5=row.insertCell(4);
var cell6=row.insertCell(5);
for (var i = 0; i < list.size(); i ){
cell1.innerHTML=list.get(i).getValue("id");
cell2.innerHTML=list.get(i).getValue("strSO");
cell3.innerHTML=list.get(i).getValue("PackName");
cell4.innerHTML=list.get(i).getValue("DocType");
cell5.innerHTML=list.get(i).getValue("DocName");
var button=document.createElement("button");
button.innerHTML="OPEN";
cell6.appendChild(button);
}
}
</script>
но это не работает.
Когда я нажимаю кнопку поиска, таблица ничего не показывает, а размер списка соответствует размеру данных результатов запроса.
Как я могу исправить свой javascript? У вас есть какие-нибудь идеи?
<label for="strSO">Sales-Order: </label> <input id="ngramBoxstrSO">
<label for="PackName">PackName: </label> <input id="ngramBoxPackName">
<label for="DocType">DocType: </label> <input id="ngramBoxDocType">
<button type="button" onclick="getDocuments()" class="btn btn-sm">SEARCH</button>
Комментарии:
1. что такое
not working
каков размерlist
2. @manikantgautam когда я нажимаю кнопку поиска, таблица ничего не показывает. а размер списка — это размер результатов запроса данных
Ответ №1:
Кажется, что ваш list
пуст. Взгляните на образец .
function getDocuments() {
var list = [
{
"Book ID": "1",
"Book Name": "Computer Architecture",
"Category": "Computers",
"Price": "125.60"
},
{
"Book ID": "2",
"Book Name": "Java Complete reference",
"Category": "Programming",
"Price": "56.00"
},
{
"Book ID": "3",
"Book Name": "Popular Science",
"Category": "Science",
"Price": "210.40"
}
] /// suppose data came from solr result i.e your list
// EXTRACT VALUE FOR HTML HEADER.
// ('Book ID', 'Book Name', 'Category' and 'Price')
var col = [];
for (var i = 0; i < list.length; i ) {
for (var key in list[i]) {
if (col.indexOf(key) === -1) {
col.push(key);
}
}
}
// CREATE DYNAMIC TABLE.
var table = document.createElement("table");
// CREATE HTML TABLE HEADER ROW USING THE EXTRACTED HEADERS ABOVE.
var tr = table.insertRow(-1); // TABLE ROW.
for (var i = 0; i < col.length; i ) {
var th = document.createElement("th"); // TABLE HEADER.
th.innerHTML = col[i];
tr.appendChild(th);
}
// ADD JSON DATA TO THE TABLE AS ROWS.
for (var i = 0; i < list.length; i ) {
tr = table.insertRow(-1);
for (var j = 0; j < col.length; j ) {
var tabCell = tr.insertCell(-1);
tabCell.innerHTML = list[i][col[j]];
}
}
// FINALLY ADD THE NEWLY CREATED TABLE WITH JSON DATA TO A CONTAINER.
var divContainer = document.getElementById("showData");
divContainer.innerHTML = "";
divContainer.appendChild(table);
}
td , th , tr{
border:1px solid green;
}
<input type="button" onclick="getDocuments()" value="Create Table From Solr" />
<p id="showData"></p>
Комментарии:
1. я думаю, что список не пуст, потому что, когда я запускаю таблицу без результатов нажатия кнопки, но когда я запускаю функцию onclick кнопки, она работает плохо: (
2. @MustafaBerkanDemir замените этот фрагмент кода на свой.