我的插入值有问题。问题是当我尝试插入问题编号时。假设我尝试插入 2 个问题。那么对于第一个问题,问题编号(QuestionId)应该是 1,对于第二个问题应该是 2。
但问题是当我插入值时,这两个问题都显示问题编号 3。所以它对每个问题所做的就是插入下一个问题编号,在这个例子中,所有问题都是“3”。
下面是当我为 2 个问题回显 $questionsql 时它显示的示例:
INSERT INTO Question (QuestionId, QuestionContent) VALUES ('3','what is my name'), ('3','what is my age')
以上是不正确的。以下是它应该回应的内容:
INSERT INTO Question (QuestionId, QuestionContent) VALUES ('1','what is my name'), ('2','what is my age')
所以我想知道的是如何为每个问题显示正确的问题编号,它应该按照问题 1、2、3 等的正确顺序添加正确的问题编号。
下面是将问题附加到表格行中的 javascript 代码和表单代码。用户将问题附加到表格行中。当用户添加第一个问题时,它会附加第 1 个问题和问题,当他们附加第二个问题时,它会附加第 2 个问题和问题等。
<script>
function insertQuestion(form) {
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $qid = $("<td class='qid'>" + qnum + "</td>");
var $question = $("<td class='question'></td>");
$('.questionTextArea').each( function() {
var $this = $(this);
var $questionText = $("<textarea class='textAreaQuestion'></textarea>").attr('name',$this.attr('name')+"[]")
.attr('value',$this.val())
$question.append($questionText);
});
$tr.append($qid);
$tr.append($question);
$tbody.append($tr);
}
++qnum;
$(".questionNum").text(qnum);
$(".num_questions").val(qnum);
</script>
<form id="QandA" action="insertQuestion.php" method="post" >
<table id="question">
<tr>
<th colspan="2">
Question Number <span class="questionNum">1</span>
<input type="hidden" class="num_questions" value="" name="numQuestion">
</th>
</tr>
<tr>
<td rowspan="3">Question:</td>
<td rowspan="3">
<textarea class="questionTextArea" rows="5" cols="40" name="questionText"></textarea>
</td>
</tr>
</table>
</form>
下面是插入值的 php 代码。
$i = 0;
$insertquestion = array();
for($i = 0; $i++ ){
$insertquestion[] = "'". mysql_real_escape_string( $_POST['numQuestion'] ) ."','".
mysql_real_escape_string( $_POST['questionText'][$i] ) ."'";
}
$questionsql = "INSERT INTO Question (QuestionId, QuestionContent)
VALUES (" . implode('), (', $insertquestion) . ")";
echo($questionsql);