javascript - 重置 AJAX/模态数据 (PHP Codeigniter)
问题描述
所以我克隆了一个表并用我使用 AJAX 获得的数据在这个 javascript 中填充它。问题是这个函数运行'onClick'并且数据没有被重置,而是将旧的克隆表附加到新克隆的表中。我怎样才能重置它?每次我点击。
这是“onClick”按钮/功能:
<table class="table-hover table dashboard">
<thead>
<tr>
<!-- <th id="request-id">ID</th> -->
<th id="request-name">NAME</th>
<th id="requestor-name">OWNER</th>
<th id="urgency">URGENCY</th>
<th id="request-date">EXPORTATION DATE</th>
<th id="environment">ENVIRONMENT</th>
<th id="status">STATUS</th>
<!-- <th id="actions">ACTIONS</th> -->
</tr>
</thead>
<tbody id="data">
<?php foreach($shared_requests as $request){ ?>
<tr onclick="this.onclick = view_project('<?php echo $request->projectID; ?>', '<?php echo $request->taskID; ?>', '<?php echo $request->requestID; ?>')" data-toggle="modal" data-target="#view_request">
<td class="txt-oflo" id="request-name">PROD_CR-csremail-au-wiscust-au-PO(B2BE#3893292)</td>
<td class="txt-oflo" id="requestor-name"><?php echo $request->owner ;?></td>
<td class="txt-oflo" id="urgency">NORMAL</td>
<td class="txt-oflo" id="request-date"><?php echo $request->requestDate ;?></td>
<td class="txt-oflo" id="environment"><?php echo $request->environment ;?></td>
<td class="txt-oflo" id="status"><?php echo $request->status ;?></td>
</tr>
<?php } ?>
</tbody>
</table>
这是我的 AJAX:
function view_project(projectID, taskID, requestID) {
var projectID = projectID;
var taskID = taskID;
var requestID = requestID;
var json = {'projectID':'" + projectID + "','taskID':'" + taskID + "','requestID':'" + requestID + "'};
$.ajax({
type:'POST',
url:"<?php echo site_url('request/view_request'); ?>/" + projectID + "/" + taskID + "/" + requestID,
dataType: 'json',
data: json,
success:function(data) {
console.log(data.requests);
console.log(data.curr_request);
console.log(data.translation_changes);
console.log(data.translations);
//Project Details
document.getElementById("projectID").innerHTML = data.curr_request[0]['projectID'];
document.getElementById("taskID").innerHTML = data.curr_request[0]['taskID'];
document.getElementById("projectOwner").innerHTML = data.curr_request[0]['projectOwner'];
document.getElementById("docType").innerHTML = data.curr_request[0]['docType'];
document.getElementById("sender").innerHTML = data.curr_request[0]['sender'];
document.getElementById("receiver").innerHTML = data.curr_request[0]['receiver'];
var requestsNum = Object.keys(data.requests).length;
var translationNum = Object.keys(data.translations).length;
//Translation Changes
for(var i = 0; i < requestsNum; i++){
//Cloning (Per Revision)
if(i != 0){
var cloneRevision = $('#revisions').clone(true)
.insertAfter(".revisions:last")
.attr("id", "revisions" + i);
cloneRevision.find('[id]').each(function() {
var strNewId = $(this).attr('id').replace(/[0-9]/g, i);
$(this).attr('id', strNewId);
$(this).attr('name', strNewId);
});
}
//Mapping
document.getElementById("revisionNumber["+i+"]").innerHTML = data.requests[i]['revisionNumber'];
document.getElementById("requestDate["+i+"]").innerHTML = data.requests[i]['requestDate'];
document.getElementById("deployDate["+i+"]").innerHTML = data.requests[i]['deployDate'];
document.getElementById("environment["+i+"]").innerHTML = data.requests[i]['environment'];
document.getElementById("status["+i+"]").innerHTML = data.requests[i]['status'];
for(var j = 0; j < translationNum; j++){
//Cloning (Per translation)
if(data.requests[i]['requestID'] + data.translations[j]['requestID']){
if(j != 0){
var cloneTranslation = $('#translations').clone(true)
.insertAfter(".translations:last")
.attr("id", "translations" + j);
cloneTranslation.find('[id]').each(function() {
var NewID = $(this).attr('id').replace(/[0-9]/g, j);
$(this).attr('id', NewID);
$(this).attr('name', NewID);
});
}
//Mapping
document.getElementById("changes["+j+"]").innerHTML = data.translation_changes[j]['changes'];
document.getElementById("name["+j+"]").innerHTML = data.translations[j]['name'];
document.getElementById("internalID["+j+"]").innerHTML = data.translations[j]['internalID'];
}
}
}
}
});
};
这就是我克隆的内容:
<div class="container view-request">
<table class="revisions table table-bordered" id="revisions">
<thead class="header">
<tr class="header text-dark">
<th colspan="4" class="text-center">
REVISION <span id="revisionNumber[0]"></span>
<span><span id="status[0]"></span> to <span id="environment[0]"></span></span>
</th>
<tr>
</thead>
<tbody class="translations" id="translations">
<tr>
<th>Request Date</th>
<td id="requestDate[0]"></td>
<th>Deployment Date</th>
<td id="deployDate[0]"></td>
</tr>
<tr>
<td><strong>Test Internal ID:</strong> </td>
<td id="internalID[0]"></td>
<th colspan="">Release as Document Type:</th>
<td id="doctype[0]"></td>
</tr>
<tr>
<th>Translation Name:</th>
<td id="name[0]"></td>
<th>Translation Changes</th>
<td id="changes[0]" colspan="3"></td>
</tr>
<tr class="spacer"><td colspan="4"></td></tr>
</tbody>
</table>
基本上我想做的是重置克隆。我似乎无法找到一种方法。有没有?:(
提前致谢!
解决方案
推荐阅读
- javascript - 如何使用 vuejs 修复滚动的 div?
- sql-server - SQL Service Broker 模拟中毒消息
- javascript - 如何防止AngularJS中的函数同时执行?
- google-cloud-platform - 如何使用 bq load 命令在 BigQuery 中加载 csv 文件数据?
- flutter - 如何使用 Mockito 在 Flutter 中正确模拟 NavigatorObserver?
- r - 如何在ggplot中安排geom点的顺序?
- javascript - 如何克服这个错误 TypeError: Cannot read property 'isLoading' of undefined when using react-redux (reducers)
- installation - 如何从本地驱动器安装 PyInstaller?
- php - 在此服务器上找不到请求的 URL /login - Laravel 5
- c - How to properly allocate memory for an array pointer passed as an argument in C