jQuery ajax callback не запускает код jQuery - PullRequest
1 голос
/ 15 апреля 2011

У меня есть флажок на веб-странице, который, когда вы щелкаете по нему, обновляет значение в базе данных, а также столбцы editedBy и editedDate в таблице в базе данных. Я делаю обновление через ajax-вызов на страницу php. Я пытаюсь получить обновленные данные editedDate и editedBy в обратном вызове при успешном завершении, чтобы я мог обновить соответствующие теги span, которые содержат эту информацию. Я пытаюсь использовать 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, который вызывается обратно, и использовать его для обновления диапазона, как упомянуто выше. Когда я использовал alert() внутри функции updateUserDate прежде, чтобы убедиться, что я могу видеть переменные и у них все есть правильные данные (вы можете увидеть код, который я использовал для этого, закомментирован) Однако всякий раз, когда я пытаюсь использовать переменные с jQuery, как вы видите в 6-й строке кода. Это ничего не делает. Кстати, код JQuery, который должен быть выведен на основе написанного выше, должен выглядеть следующим образом $("#tableName .row1 .newEditedDate").html("April 14, 2011 @ 5:15pm") Чего мне не хватает? Заранее спасибо за любую помощь!

Ответы [ 2 ]

3 голосов
/ 15 апреля 2011

Ваш селектор не работает, у вас есть дополнительные кавычки:

'"#' + 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);
1 голос
/ 15 апреля 2011

Почему вы используете одинарные и двойные кавычки?Команду, которую вы передаете jQuery, оцените следующим образом:

$ ('"# tableName .row1 .newEditedDate"'). Html ('"14 апреля 2011 г. @ 17:15" ")

вместо этого:

$ ("# tableName .row1 .newEditedDate"). Html ("14 апреля 2011 @ 17:15")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...