У меня есть столбец флажка в таблице, а тег флажка содержит идентификатор ячейки таблицы. Когда установлен флажок, я хочу, чтобы имя пользователя отображалось рядом с этим флажком. Имя пользователя содержится в теге метки, который также содержит идентификатор ячейки таблицы.
У меня это работает, но только когда страница обновлена (так что значение идентификатора пользователя извлекается из базы данных). Как отобразить имя пользователя в первый раз, когда выбрано поле? Я подозреваю, что это нужно сделать в jquery, в функции, которая обрабатывает этот флажок.
У меня есть show/hide для тега метки (для имени пользователя), и я полагаю, что могу поместить что-то в этом разделе, которое помещает значение имени пользователя в метку?
В базе данных значение флажка - ReviewedFlg, а значение имени пользователя - ReviewedUser.
function reviewchk() {
var tid = $(this).attr('id');
var ident = tid.split("-");
var tabnum = ident[1];
var ind = tabnum-1;
var aPos = oTable[ind].fnGetPosition(this);
var selrow = oTable[ind].fnGetData(aPos[0]);
var stnum = selrow[0]; //store
var supnum = selrow[2]; //supplier number
var invnum = selrow[4]; //invoice number
var column = aPos[1];
var usr = ident[3];
var tdid = ident[2].substring(2);
var rvalue = 0;
if($(this).find('input:checked').attr('checked')==='checked') {
rvalue = 1;
$('#lblchk-'+tabnum+'-'+tdid).show();
} else {
rvalue = 0;
$('#lblchk-'+tabnum+'-'+tdid).hide();
}
$.ajax({
type: 'POST',
url: 'edit_errorcode.php',
async: false,
data: {
stnum: stnum,
supnum: supnum,
invnum: $(invnum).text(),
all: 'one',
value: rvalue,
column: column,
user: usr
}
});
};
И HTML/PHP:
$reviewcheck = sprintf(
'<input %s class="chkbx" name="reviewchk%s" id="reviewchk-%s-td%s" type="checkbox"/><label id="lblchk-%s-%s" class="lblchk"> %s</label>',
(trim($r['ReviewedFlg'])==='1' ? 'checked=checked' :''),
$id,
$id,
$tdid,
$id,
$tdid,
(trim($r['ReviewedFlg'])==='1' ? $r['ReviewedUser'] :'')
);
Я решил это в HTML/PHP, добавив стиль к метке, который показывает или не отображается в зависимости от того, выбран ли флажок, когда страница загружается. Я также изменил значение метки как текущего пользователя, если ReviewedFlg не установлен, когда страница сначала загружается (так как это означает, что флажок не выбран). Jquery не изменился, но теперь HTML/PHP:
$showlabel = "display:inline";
$nolabel = "display:none";
$reviewcheck = sprintf('<input %s class="chkbx" name="reviewchk%s" id="reviewchk-%s-td%s" type="checkbox"/><label id="lblchk-%s-%s" class="lblchk" style="%s"> %s</label>',(trim($r['ReviewedFlg'])==='1' ? 'checked=checked' :''),$id,$id,$tdid,$id,$tdid,(trim($r['ReviewedFlg'])==='1' ? $showlabel : $nolabel) ,(trim($r['ReviewedUser'])==='' ? $_SESSION['user'] : $r['ReviewedUser']));