[英]How to add drop down list in every row of dynamic table which fetch data from server?
I want to add static drop downlist to every row of dynamic table which fetch the data from server, How I will do this? 我想将静态下拉列表添加到从服务器获取数据的动态表的每一行, 我将如何做到这一点?
I want to make same like this ,( please check drop downlist type ) but it will also fetch data from server and every row of column will have drop drownlist. 我要让同这样的 ,( 请放下downlist型 ),但它也从服务器上获取数据和列的每一行都会有下降drownlist。
Following is updated and working code, thanks to @angu 由于@angu,以下是更新和工作代码
Structure of drop down list. 下拉列表的结构。
<select >
<option value="1">NewJob</option>
<option value="2">InProgress</option>
<option value="3">CloseJon</option>
</select>
Dynamic Table 动态表
<div class="span9" id="content">
<div class="row-fluid">
<div class="block">
<div class="navbar navbar-inner block-header">
<div class="muted pull-left">Carpenter Services</div>
</div>
<div class="block-content collapse in">
<div class="span12">
<table class="data-contacts1-js table table-striped" >
<thead>
<tr>
<th>ID</th>
<th>Customer Name</th>
<th>Customer Mobile</th>
<th>Customer Email</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<button id="fetchContacts1" class="btn btn-default" type="submit">Refresh</button>
</div>
</div>
<!-- /block -->
</div>
JavaScript JavaScript的
<script>
function fetchData1(){
$(".data-contacts1-js tbody").empty();
$.get("http://localhost/service/Services.php", function(data) {
var obj=JSON.parse(data);
for(var i in data){
var tr=$("<tr></tr>");
tr.append(
"<td>" + obj[i].b_id + "</td>" +
"<td>" + obj[i].cust_name + "</td>" +
"<td>" + obj[i].cust_mobile + "</td>" +
"<td>" + obj[i].cust_email + "</td>"
);
tr.append("<select class='input-small'><option value='New Job'>NewJob</option><option value='WIPJob'>WIP Job</option></select>");
$(".data-contacts1-js tbody").append(tr);
i++;
}
});
}
$(document).ready(function(){
$(".data-contacts1-js tbody").empty();
$('#fetchContacts1').click(function() {
fetchData1();
});
});
</script>
use it. 用它。 i think this is helpful for you
我认为这对你有帮助
Jquery Code Generate Dynamic append Row: Jquery代码生成动态追加行:
$(function(){
for(var i=0;i<3;i++){
var trd="";
trd +="<tr>";
trd +="<td>";
trd+="<select class='input-small'><option value=''>Type</option><option value=''>Type1</option></select>";
trd+="</td>";
trd+="<td><input type='text'> </td>";
trd+="<td><input type='text'> </td>";
trd+="</tr>";
$(".table-bordered tbody").append(trd);
}
});
Here are couple createSelect functions that could work in your case. 这里有几个createSelect函数可以在你的情况下工作。 Plain JavaScript is used in those functions :-)
纯JavaScript用于那些函数:-)
$("body").append("createSelect() "); $("body").append("<br>"); $("body").append(createSelect()); $("body").append("<br><br><br>"); $("body").append(" createSelectDynamic() "); $("body").append("<br>"); var array = [{ "value": 1, "text": "NewJob" }, { "value": 2, "text": "InProgress" }, { "value": 3, "text": "CloseJob" }] $("body").append(createSelectDynamic(array)); $("body").append("<br><br><br>"); $("body").append("miniTable where createSelect() used ") $("body").append("<table><tr><td><td>2nd<td>third"); var select = createSelect(); $("td:first-child").append(select); function createSelect() { var select = document.createElement("select"); var option = document.createElement("option"); option.value = 1; option.text = "NewJob"; select.add(option); var option2 = document.createElement("option"); option2.value = 2; option2.text = "InProgress"; select.add(option2); var option3 = document.createElement("option"); option3.value = 3; option3.text = "CloseJob"; select.add(option3); return select; } function createSelectDynamic(values) { var select = document.createElement("select"); for (i = 0; i < values.length; i++) { var option = document.createElement("option"); option.value = values[i].value; option.text = values[i].text; select.add(option); } return select; }
table, th, td { border: 1px solid blue; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.