我相信jquery增量导致错误的数字被插入到数据库中

时间:2012-09-20 15:55:56

标签: php jquery

我希望在数据库表格中显示正确的问题编号,但问题是它显示错误的问题编号+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.
  • 等等......

1 个答案:

答案 0 :(得分:0)

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

修改

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

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

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