2011-04-14 96 views
1

我有一個網頁上的複選框,當您單擊它時,更新數據庫中的值以及數據庫中的表中的editedBy和editedDate列。我正在通過ajax調用更新到一個PHP頁面。我試圖在成功回調中獲取更新的editedDate和editedBy數據,以便我可以更新保存此信息的響應式span標籤。我試圖用jQuery來實現這一點。這是我到目前爲止有:jQuery ajax回調不會觸發jQuery代碼

var updateUserDate = function(data){ 
    var table = data.table; 
    var rowId = data.rowId; 
    var editedDate = data.editedDate; 
    var editedBy = data.editedBy; 
    //alert(table+' - '+rowId+' - '+editedDate+' - '+editedBy); 
    $('"#'+table+' .row'+rowId+' .newEditedDate"').html('"'+editedDate+'"'); 
} 
var submitDataCheckbox = function(target){ 
    var project = target.attr('project'); 
    var tableName = target.attr('table'); 
    var rowId = target.attr('rowId'); 
    var checkboxValue = (target.attr('checked'))?true:false; 
    $.ajax({ 
     type: 'GET', 
     url: '/checklistpost.php?projectId='+project+'&table='+tableName+'&rowId='+rowId+'&value='+checkboxValue, 
     success: function(data){ 
      updateUserDate(data); 
     }, 
     error: function(){ 
      alert('There was an error submitting data to the database.'); 
     }, 
     dataType: 'json' 
    }); 
} 

checklistpost.php頁面需要是在查詢字符串,並將其發佈到數據庫中的變量。然後,它將變量放入一個數組中,然後用json編碼,這樣我就可以使用json對象。基本上,我正在嘗試取回那個被回調的json對象,並使用它來更新上面提到的跨度。當我在updateUserDate函數中使用alert()之前驗證我可以看到這些變量並且它們都具有正確的數據(您可以看到我用來執行此操作的代碼已被註釋掉)。然而,每當我嘗試和使用jQuery的變量,因爲你在代碼的第6行看到。它什麼都不做。順便說一句,基於上面寫的應該輸出的jQuery代碼應該是這樣的$("#tableName .row1 .newEditedDate").html("April 14, 2011 @ 5:15pm")我缺少什麼?預先感謝任何幫助!

+0

你使用jQuery驗證插件anyhwere?像老版本的jQuery validate之類的一些插件可以修改全局的'ajaxSetup()'並導致這種事情失敗。 – 2011-04-14 22:16:05

回答

3

在那裏,你的選擇是壞了,你有額外的引號:

'"#' + table+' .row' + rowId + ' .newEditedDate"' 

應該是:

'#' + table + ' .row' + rowId + ' .newEditedDate' 

所以:

// you're surrounding editedDate with extra quotes too, or is that intentional? 
$('#' + table + ' .row' + rowId + ' .newEditedDate').html(editedDate); 
+0

哦,兄弟!猜猜我一直盯着這個太久,沒有看到明顯的......失敗哈哈。非常感謝你的幫助!爲你+1! – RyanPitts 2011-04-15 01:57:49

1

你爲什麼要使用單雙引號?你傳遞給jQuery的命令將評估這個:

$( ' 「#表名.row1 .newEditedDate」')的html( ' 「2011年4月14日@下午5:15」')

代替。這個:

$( 「#表名.row1 .newEditedDate」)HTML( 「2011年4月14日@下午5:15」)