2011-04-14 60 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”)