0

我在表格中有一个复选框列,复选框标签包含表格单元格的 id。选中复选框后,我希望在复选框旁边显示用户名。用户名包含在一个标签标签中,该标签也包含表格单元格的 id。

我有这个工作,但只有在刷新页面时(以便从数据库中提取用户 ID 的值)。第一次选择框时如何显示用户名?我怀疑这需要在 jquery 中完成,在处理复选框单击的函数中。

我有一个显示/隐藏标签标签(用于用户名),我相信我可以在本节中放置一些内容,将用户名的值放入标签中?

在数据库中,checkbox的值为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">&nbsp%s</label>', 
    (trim($r['ReviewedFlg'])==='1' ? 'checked=checked' :''),
    $id,
    $id,
    $tdid,
    $id,
    $tdid,
    (trim($r['ReviewedFlg'])==='1' ? $r['ReviewedUser'] :'')
);
4

1 回答 1

0

我在 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">&nbsp%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']));
于 2013-11-13T15:31:29.863 回答