0

我试图从表中挑选出正确的问题编号并将其插入数据库。假设我有一个表格,它附加了行并且我有 3 行,下面的表格将如下所示:

Question No     Image

1              (file input)
2              (file input)
3              (file input)

下面是创建上表的代码: var qnum = 1;

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);


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

我的问题是,假设我使用第 2 行中的文件输入,例如,如何在要插入数据库的文件输入的同一行中插入问题编号(插入的问题编号显然是 2)?

另一个例子是,例如,如果我使用第 3 行中的文件输入,我如何在与要插入数据库的文件输入相同的行中插入问题编号(插入的问题编号显然是 3)?

下面是我目前将数据插入数据库的代码(主代码):

$lastID = $mysqli->insert_id;         

 $imagequestionsql = "INSERT INTO Image_Question (ImageId, SessionId, QuestionId)  
    VALUES (?, ?, ?)"; 

     if (!$insertimagequestion = $mysqli->prepare($imagequestionsql)) { 
      // Handle errors with prepare operation here 
       echo "Prepare statement err imagequestion"; 
    } 

$qnum = 1;

$insertimagequestion->bind_param("isi",$lastID, $sessid, $qnum); 

$sessid =  $_SESSION['id'] . ($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : ''); 

    $insertimagequestion->execute(); 

                if ($insertimagequestion->errno) { 
          // Handle query error here 
        } 

        $insertimagequestion->close(); 

目前,上面的代码只是每次在数据库中为问题编号插入数字 1

4

1 回答 1

0

如果我正确理解了您的问题,这是一个很好的方法:PHP 在 $_POST、$_GET 和 $_FILES 中支持“子数组”。IE 如果你有

<input type="file" name="upload[1]" />
<input type="file" name="upload[2]" />
<input type="file" name="upload[3]" />

您可以轻松检查哪个文件上传是由 $_FILES["upload"][X] 触发的,其中 X 介于 1 和 3 之间。$_GET 和 $_POST 也是如此。请记住这个技巧,因为它非常有用,尤其是在使用 JavaScript 动态添加元素时。例如,您可以有如下代码:

last_index = 1;
//later in the code
//....
$('#container').append('<input type="file" name="upload['+last_index+']" />');
last_index++;

然后,在 PHP 代码中,您可以检查 $_FILES["upload"] 数组的长度,甚至可以使用 array_keys 获取其键并检查哪个文件输入已“上传”。希望这可以帮助。

于 2012-09-25T14:10:06.650 回答