【发布时间】:2012-12-24 03:05:14
【问题描述】:
我很难知道哪些代码应该放在哪些页面中。
我想要做的是:
在
addstudentsession.php页面中,用户从#sessionsDrop下拉菜单中选择评估每次从下拉菜单中选择评估时(或者换句话说,每次更改下拉菜单中的选项时),它都会对单独的页面
addedstudents.php执行 ajax 调用以执行查询查看哪些学生参加了所选的评估。从查询结果中进行评估的学生应该显示在
addstudentsession.php的多选框中(如果用户没有选择评估,我仍然想要一个空白的多选在addstudentsession.php中显示的框
我的问题应该是每个代码的位置应该能够执行此操作,因为我根本没有做到这一点。根本没有出现多选框,我得到了一个未定义的变量。
以下是当前addstudentsession.php页面:
下拉菜单:
$sessionHTML = '';
if($sessionnum ==0){
$pHTML = "<span style='color: red'>Sorry, You have No Assessments under this Module</span>";
}
$sessionHTML = '<select name="session" id="sessionsDrop">'.PHP_EOL;
$sessionHTML .= '<option value="">Please Select</option>'.PHP_EOL;
$studentInfo = array();
while ( $sessionqrystmt->fetch() ) {
$sessionHTML .= sprintf("<option value='%s'>%s - %s - %s</option>", $dbSessionId, $dbSessionName, date("d-m-Y",strtotime($dbSessionDate)), date("H:i",strtotime($dbSessionTime))) . PHP_EOL;
}
$sessionHTML .= '</select>';
...
<form action='".htmlentities($_SERVER['PHP_SELF'])."' method='post' id='assessmentForm'>
<p><strong>Assessments:</strong> {$sessionHTML} </p>
</form>";
多选框:
//getting undefined error below of studentSELECT
$moduleexist="
<form id='moduleExistForm'>
<p><strong>Current Students in Chosen Assessment:</strong></p>
<p>{$studentSELECT}</p>
</form>
</div>";
echo $moduleexist;
Ajax 调用:
$('#sessionsDrop').change( function(){
var search_val = $(this).val();
$.post("addedstudents.php",
{studenttextarea : search_val},
function(data){
if (data.length>0){
$("#studentselect").html(data);
}
)};
下面是当前的addedstudents.php 页面,它在其中执行查询并在选择框中列出详细信息:
<?php
$studentactive = 1;
$currentstudentqry = "
SELECT
ss.SessionId, st.StudentId, st.StudentAlias, st.StudentForename, st.StudentSurname
FROM
Student_Session ss
INNER JOIN
Student st ON ss.StudentId = st.StudentId
WHERE
(ss.SessionId = ? and st.Active = ?)
ORDER BY st.StudentAlias
";
$currentstudentstmt=$mysqli->prepare($currentassessmentqry);
// You only need to call bind_param once
$currentstudentstmt->bind_param("ii",$sessionsdrop, $stuentactive);
// get result and assign variables (prefix with db)
$currentstudentstmt->execute();
$currentstudentstmt->bind_result($dbSessionId,$dbStudentId,$dbStudentAlias,$dbStudentForename.$dbStudentSurname);
$currentstudentstmt->store_result();
$studentnum = $currentstudentstmt->num_rows();
$term = $_POST['studenttextarea'];
$studentSELECT = '<select name="studenttextarea" id="studentselect" size="6">'.PHP_EOL;
if($studentnum == 0){
$studentSELECT .= "<option disabled='disabled' class='red' value=''>No Students currently in this Assessment</option>";
}else{
while ( $currentstudentstmt->fetch() ) {
$studentSELECT .= sprintf("<option disabled='disabled' value='%s'>%s - %s s</option>", $dbStudentId, $dbStudentAlias, $dbStudentForename, $dbStudentSurname) . PHP_EOL;
}
}
$studentSELECT .= '</select>';
?>
【问题讨论】: