セッションIDと学生のセットをデータベースに挿入したいと思います。
セッションIDは、以下のコード行にあります。
<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();
}
}
});
}
updatestudentsession.php
以下は、挿入を行うことを想定している別の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();
今私が抱えている問題は、正しいデータをまったく挿入していないことです。とフィールド0
の両方に値を挿入します。以下は、挿入後のテーブルの外観です。SessionId
StudentId
SessionId StudentId
4 1
4 4
4 7
代わりに、次のようになります。
SessionId StudentId
0 0
私の質問は、正しいデータを取得してデータベースに挿入できない原因は何ですか?