【发布时间】:2015-05-09 03:04:50
【问题描述】:
<select id="group" name="group" onchange="generateList(this.value);">
<?php foreach ($userGroup as $item) { ?>
<option value="<?= $item->appsGroupId ?>"><?= $item->userGroupName ?></option>
<?php } ?>
</select>
这是一个下拉列表和更改事件,我正在调用以下 javascript 函数,该函数将 ajax 发布到 PHP 函数
function generateList(id)
{
var packages = "";
var groupId = {"group_id" : id};
$.ajax({
type: "POST",
data: groupId,
url: "<?= base_url() ?>apps_users/seeGroup",
dataType: "json",
success: function(data) {
packages = jQuery.parseJSON(data.packages);
var vm = function() {
var self = this;
self.records = ko.observableArray(packages);
$.each(self.records(), function(i, record){
record.packageId = record.packageId;
record.packageName = record.packageName;
})
}
ko.applyBindings(new vm());
},
error: function(error) {
alert(error.status + "<--and--> " + error.statusText);
}
});
};
并且在 ajax 发布成功时(调用返回 json 响应的 PHP 函数)。通过响应,我正在填充一个简单的 HTML 表格,如下所示:
<div class="container" id="assignPackage">
<table class="table table-striped table-bordered" id="packageTable">
<thead>
<tr>
<th>ID</th>
<th>Package Name</th>
</tr>
</thead>
<tbody data-bind="foreach: records">
<tr>
<td data-bind="text:packageId" > </td>
<td data-bind="text:packageName"> </td>
</tr>
</tbody>
</table>
<br><br>
</div>
现在的问题是,当我更改下拉列表时,表格正在填充新数据,但旧数据仍然存在。在下拉更改我想要的是清除 HTML 表中的旧数据并在 ajax 发布后加载新数据。
【问题讨论】:
-
该表是用静态 HTML 代码编写的,还是在 ko.applyBindings() 函数中创建的?
-
表是用静态 html 代码编写的,我在 ajax 发布成功后将数据绑定到表。如您所见,我正在使用数据绑定到每个 td @WorldFS
标签: javascript php jquery html ajax