【发布时间】:2012-12-25 19:44:39
【问题描述】:
我想在数据库中插入一个 sessionid 和一组学生。
sessionid 可以在下面的代码行中找到:
<td><input type='hidden' id='currentId' name='Idcurrent' readonly='readonly' value='4' /> </td>
一组学生显示在选择框中,如下所示:
<select id="studentadd" name="addtextarea">
<option value='1'>u08743 - Joe Cann</option>
<option value='4'>u03043 - Jill Sanderson</option>
<option value='7'>u08343 - Craig Moon</option>
</select>
现在我正在使用 ajax 来获取 sessionId 值和学生的值,并将它们发布到一个单独的 php 页面中,使用下面的代码进行插入:
function submitform() {
$.ajax({
type: "POST",
url: "updatestudentsession.php",
data: {
Idcurrent: $('#currentid').val(),
addtextarea:$('#studentadd').val()
},
dataType:'json', //get response as json
success: function(result){
if(result.errorflag){
$("#targetdiv").html('success');
}else{
//you got success message
$("#targetdiv").html('error');
$('#targetdiv').show();
}
}
});
}
下面是单独的 php 文件 updatestudentsession.php,它应该在其中进行插入:
$studentid = array();
$studentid[] = (isset($_POST['addtextarea'])) ? $_POST['addtextarea'] : '';
$sessionid = (isset($_POST['Idcurrent'])) ? $_POST['Idcurrent'] : '';
$insertsql = "
INSERT INTO Student_Session
(SessionId, StudentId)
VALUES
(?, ?)
";
if (!$insert = $mysqli->prepare($insertsql)) {
// Handle errors with prepare operation here
}
foreach($studentid as $id)
{
$insert->bind_param("ii", $sessionid, $id);
$insert->execute();
if ($insert->errno) {
// Handle query error here
}
}
$insert->close();
现在我遇到的问题是根本没有插入正确的数据。它在SessionId 和StudentId 字段中插入值0。下面是插入后表格的样子:
SessionId StudentId
4 1
4 4
4 7
而是如下所示:
SessionId StudentId
0 0
我的问题是什么导致它无法检索到正确的数据并将其插入到数据库中?
【问题讨论】:
-
请缩小到有问题的部分,不要发布html + js + php ....
-
进行研发并仅指定您发现错误的部分。
-
检查您的数据部分,数据:{ Idcurrent: $('#currentid').val(), addtextarea:$('#studentadd').val() } 是否带有 @ 的有效 json 987654321@
-
通过赋予表单元素 id="" 和 name="" 属性相同的值来简化您的生活。
-
您的 studentid 数组是否以正确的方式包含数据?