2

我希望在数据库表中显示正确的问题编号,但问题是它通过 +1 显示不正确的问题编号。

假设我有 4 行,我在第 2 行和第 4 行使用文件输入来上传文件,那么这意味着问题编号应该是 2 和 4,这意味着表格应该如下所示:

ImageId    SessionId  QuestionId
01               AAA        2
02               AAA        4

但相反,它的问题编号只加了 1,这意味着它的显示如下:

ImageId    SessionId  QuestionId
01               AAA        3
02               AAA        5 

我认为问题在于我没有正确增加问题编号。谁能看到我在下面的代码中做错了什么,它插入了错误的问题编号?

下面是代码:

var qnum = 1; //question number starts at 1
var qremain = <?php echo (int)$_SESSION['textQuestion']; ?>; //the full number of questions

var $qid = $("<td class='qid'></td>" ).text(qnum);
var $image = $("<td class='image'></td>");    

var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return imageClickHandler(this);' class='imageuploadform' >" + 
        "Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><br/><label class='imagelbl'>" + 
    "<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label>" + 
    "<label><input type='button' name='imageClear' class='imageClear' value='Clear File'/></label>" +
    "</p></form>"); 


$tr.append($qid);
$tr.append($image);

$('.num_questions').each( function() {

    var $this = $(this);

    var $questionNumber = $("<input type='hidden' class='num_questionsRow'>").attr('name',$this.attr('name')+"[]")
                   .attr('value',$this.val());

    $qid.append($questionNumber);                             

    ++qnum;
    $(".questionNum").text(qnum);
    $(".num_questions").val(qnum);

    --qremain;
    $(".questionRemain").text(qremain);
});

$('.num_questions').each( function() {工作是这样的:

  • 当用户打开页面时,qnum(问题编号)从顶部的“1”开始
  • 当用户添加表格行时,它将从顶部获取问题编号“1”并将其显示在添加的行中,并且顶部的 qnum(问题编号)递增,因此它现在状态为 2
  • 当用户添加另一行时,它将从顶部获取问题编号“2”并将其显示在添加的行中,并且顶部的 qnum(问题编号)递增,因此现在显示 3。
  • 等等等等……
4

1 回答 1

0

为什么不开始var qnum = 0;呢?大多数增量功能都可以!

编辑

++qnum在使用.text.val显示行中的值之前递增。之后尝试递增。您的每个功能都将以:

$(".questionNum").text(qnum);
$(".num_questions").val(qnum);
++qnum;

$(".questionRemain").text(qremain);
--qremain;
于 2012-09-20T16:02:48.237 回答