所以我有一个“场景”,由很多“表单”组成,其中包含很多“事件”和“数据”等。为了填充所有这些信息,我在页面中设置了这些信息,以便在页面完成后运行
$(document).ready(function() {
var scenarioID = ${testScenarioInstance.id}
var myData = ${results as JSON}
populateFormData(myData, scenarioID);
});
然后调用下面的函数(第一个调用第二个,这样做是因为我遇到了一个问题,因为它是 ajax,循环中的变量在添加内容之前正在更新,因此所有内容都在最后一个子表中结束): -
function populateFormData(results, scenarioID) {
$table = $('#formList')
for ( var i in results) {
var formIDX = (results[i]["forms_idx"])
var formID = (results[i]["form_id"])
appendSubTable(formIDX, scenarioID, $table, formID);
}
}
function appendSubTable(formIDX, scenarioID, $table, formID) {
var url = "http://localhost:3278/FARTFramework/testScenario/ajaxPopulateSubTables"
$.post(url, {
formIDX : formIDX, scenarioID : scenarioID, formID :formID
}, function(data) {
var $subTable = $table.find("#" + formIDX).find('td:eq(1)').find("div").find("table")
$subTable.append(data)
}).fail(function() {
alert("it failed!")
});
}
然后它会像这样从控制器中获取数据..
def ajaxPopulateSubTables(int formIDX, int scenarioID, int formID) {
def db = new Sql(dataSource)
String mySQL = "Loads of SQL STUFF"
def subTableResults = db.rows(mySQL)
render(template: "subTableEntry", model: [subTableResults:subTableResults, formID:formID, formIDX:formIDX])
}
并在 gsp 上触发它:
<colgroup>
<col width="150"/>
<col width="350"/>
<col width="350"/>
<col width="350"/>
</colgroup>
<g:if test="${subTableResults != null && !subTableResults.isEmpty()}">
<tr>
<th>eventIDX</th>
<th>eventID </th>
<th>objID</th>
<th>testVal</th>
</tr>
</g:if>
<g:each in="${subTableResults}" status = "i" var="item">
<tr id = ${i} class="${((i) % 2) == 0 ? 'even' : 'odd'}" name="main">
<td>${item.events_idx}</td>
<td>${item.type}</td>
<td>${item.object_description}</td>
<td><g:textField id = "testData[${formIDX}:${formID}:${i}]" name="testData[${formIDX}:${formID}:${i}]" value="${item.value}" optionKey="id" /></td>
</tr>
</g:each>
在此之前将其插入相关的子表中。
问题是,有时当我加载页面时,并非所有子表都已填写,但如果我按 F5 刷新页面,这似乎可以解决问题......虽然并非总是如此,但有时我会得到一个不同的部分不刷新:(
我在控制器中放了一个 println 来查看是否所有的 SQL 都被触发了,但它总是返回所有单独的表单 SQL 字符串......
在萤火虫中查看所有帖子都恢复正常,但页面没有更新......
关于可能导致这种情况的任何建议或想法将不胜感激,我很茫然..
我还尝试更新我的 appendSubTable 函数,其中帖子将包含失败,以防万一发生故障,但这也没有命中,已更新上面的代码以显示这一点