アプリケーションに 2 つの選択ボックスがあります。ユーザーがページを送信すると、選択ボックスで選択 (強調表示) されたすべての学生が選択ボックス#studentadd
に追加され#studentselect
ます。ただし、最初の選択ボックスで選択されていないオプションは、2 番目の選択ボックスに追加されません。
私の質問は、「#studentadd」選択ボックス内で選択されていないオプションを「#studentselect」選択ボックスに追加するにはどうすればよいですか?
私のphp/ajaxの問題は、ajaxを使用して別のphpファイルに移動し、#studentadd
選択ボックスの学生をデータベースに挿入することです。ただし、挿入は、#studentdd
選択ボックス内の学生の蛍光ペンに対してのみ発生します。`#studentadd' で選択されていないオプションの挿入は実行されません。
以下は選択ボックス#studentadd
です:
<select multiple="multiple" name="addtextarea" id="studentadd" size="10">
<option value='1'>u08743 - Joe Cann</option>
<option value='4'>u03043 - Jill Sanderson</option>
<option value='7'>u08343 - Craig Moon</option>
</select>
以下は、生徒を追加する選択ボックスです。
<select id="studentselect" name="studenttextarea"></select>
以下はjquery/ajaxです:
function submitform() {
$.ajax({
type: "POST",
url: "updatestudentsession.php",
data: {
addtextarea:$('#studentadd').val()
},
dataType:'json', //get response as json
success: function(result){
if(result.errorflag){
//do your stuff on getting error message
var newHtml="<span style='color: red'>"+result.msg+"</span>";
$("#targetdiv").html(newHtml); //i am displaying the error msg here
$('#targetdiv').show();
}else{
//you got success message
var newHtml="<span style='color: green'>"+result.msg+"</span>";
$("#targetdiv").html(newHtml);
//append students you want to add to assessment into student exist select box
var selectedOption = $('select#studentadd');
$('select#studentselect').append(selectedOption.html());
//blank #studentadd select box
$('#studentadd').empty();
$('#targetdiv').show();
}
}
});
}
updatestudentsession.php
以下は、ajax からアクセスされ、データをデータベースに挿入する別の php ファイルです。
$studentid = (isset($_POST['addtextarea'])) ? $_POST['addtextarea'] : array();
$sessionid = (isset($_POST['Idcurrent'])) ? $_POST['Idcurrent'] : array();
$insertsql = "
INSERT INTO Student_Session
(SessionId, StudentId)
VALUES
(?, ?)
";
if (!$insert = $mysqli->prepare($insertsql))
{
// Handle errors with prepare operation here
}
$success = true;
foreach($studentid as $id)
{
$insert->bind_param("ii", $sessionid, $id);
if($insert->execute() === false)
{
$success = false;
}
}
$insert->close();
if($success)
{
echo json_encode(array('errorflag'=>false,'msg'=>"Students have been successfully added into the Assessment"));
}
else
{
echo json_encode(array('errorflag'=>true,'msg'=>"An error has occured, Students have not been added into the Assessment"));
}