所以我有一個「場景」,由大量的「形式」,其中包含大量的「事件」和「數據」等。爲了填充所有這些信息,我在頁面中運行一次頁面完成Ajax POSTS不更新屏幕內容
$(document).ready(function() {
var scenarioID = ${testScenarioInstance.id}
var myData = ${results as JSON}
populateFormData(myData, scenarioID);
});
這然後調用下面的函數(第一調用第二,這樣做,因爲我已經在那裏,因爲它是阿賈克斯循環變量事情是之前被更新的問題附加,所以一切都結束在最後一個子表): -
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字符串...
展望螢火所有的帖子都恢復正常,但頁面只是沒有更新...
任何關於什麼mi的建議或想法ght是造成這將不勝感激,我不知所措,我很茫然。
我也嘗試更新我的appendSubTable函數,其中的職位是包括一個失敗的情況下,失敗的情況下,但這也沒有命中,有上述更新的代碼,以顯示該
使用像Firebug這樣的工具來查看發生的ajax調用。他們都回到瀏覽器? –
@SérgioMichels我有螢火蟲,如何查看ajax調用是否正在發生並返回瀏覽器? – MorkPork
解決了如何讓它顯示。通過它的外觀,所有的POST都返回數據,但頁面似乎並沒有顯示所有的東西,我可以看到,當我查看螢火蟲內的html時,空表中沒有任何內容,但是看着帖子我可以看到它回來的數據:S – MorkPork