可能重复:
它没有';t在数据库中插入值
我在下面有一个Javascript,它为表中的每一行添加了一个问题编号($qid):
<script>
var qnum = 1;
function insertQuestion(form) {
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $qid = $("<td class='qid'>" + qnum + "</td>");
$tr.append($qid);
$tbody.append($tr);
++qnum;
$("#questionNum").text(qnum);
}
</script>
下面的表单代码。假设添加问题编号的行位于下表中,并且它确实在下表中添加了表行:
<form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" >
<h1><?php echo $_SESSION['id'] ?></h1>
<p>
<input id="addQuestionBtn" name="addQuestion" type="button" value="Add Question" onClick="insertQuestion(this.form)" />
</p>
<table id="qandatbl" align="center">
<thead>
<tr>
<th class="qid">Question No</th>
</tr>
</thead>
<tbody></tbody>
</table>
<p>
<input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" />
</p>
</form>
然而,问题是,这是我的问题,我想将表行中的所有问题编号添加到数据库中的数据库中(每个数据库行1个问题编号),但这是不可能的,因为在表单中,我没有"name"属性。可以调用$_POST将表单中的问题编号放入我的INSERT VALUES代码中,以便能够将这些问题编号添加到数据库中。我想知道的是,我可以把"name='insertqid'"放在哪里,这样我就可以在查询中调用它,然后能够在数据库中插入问题编号?目前,我在查询中得到了一个未定义的索引:"insertqid"。
以下是我目前拥有的php INSERT VALUES代码:
<?php
session_start();
$username="xxx";
$password="xxx";
$database="xxx";
mysql_connect('localhost',$username,$password);
mysql_select_db($database) or die( "Unable to select database");
$insertquestion = array();
$insertquestion[] = "' ". mysql_real_escape_string( $_POST['insertqid'] ) . "'";
$questionsql = "INSERT INTO Question (QuestionId) VALUES (" . implode('), (', $insertquestion) . ")";
mysql_query($questionsql);
mysql_close();
?>
您可以按如下方式添加行,但尚未显示如何添加问题。您将从中得到的只是一个包含一系列编号行的表。
<script type="text/javascript">
var insertQuestion = (function () {
var row = document.createElement('tr');
row.classname = 'optionAndAnswer';
row.style.align = 'center';
var cell = document.createElement('td');
cell.className = 'qid';
return function(id) {
var tbody = document.getElementById(id).tBodies[0];
var r = tbody.appendChild(row.cloneNode(false));
var c = r.appendChild(cell.cloneNode(false));
c.appendChild(document.createTextNode(tbody.rows.length));
}
}());
</script>
<form id="QandA" action="" >
<p><input type="button" value="Add Question"
onClick="insertQuestion('qandatbl')">
<table id="qandatbl" align="center">
<thead>
<tr>
<th class="qid">Question No</thead>
</table>
<p><input type="submit" value="Submit Details">
</form>