0

下にaddstudentsession.phpドロップダウンメニューがあり、そこに試験のリストが含まれており、空の複数選択ボックスも空の複数選択ボックスがあります。

    //FROM VIEW SOURCE:

        <select name="session" id="sessionsDrop">
        <option value="">Please Select</option>
        <option value='20'>EWYGC - 10-01-2013 - 09:00</option>
        <option value='22'>WDFRK - 11-01-2013 - 10:05</option>
        <option value='23'>XJJVS - 12-01-2013 - 10:00</option>
        <option value='21'>YANLO - 11-01-2013 - 09:00</option>
        <option value='24'>YTMVB - 12-01-2013 - 03:00</option>
        </select> </p> 

    //FROM CODE:

    $studentSELECT = "";  
    $studentSELECT .= '<select name="studenttextarea" id="studentselect" size="6">';
    $studentSELECT .= '</select>'; 

//AJAX CODE:

         $(document).ready( function(){


        $('#sessionsDrop').change( function(){
            var search_val = $(this).val();
            $.post("addedstudents.php", 
            {studenttextarea : search_val}, 
            function(data){
   if (data.length>0){ 
     $("#studentselect").html(data); 
   } 
)};

ここで、ドロップダウン メニューから試験が選択されると、ajax 呼び出しがアクティブになり、別の php ページに移動して、そのページでクエリを実行し、現在アセスメントに参加している学生の数を確認します。 . 生徒が 0 人いない場合は、アセスメントに生徒がいないと表示されます。それ以外の場合は、試験に参加している各生徒のエイリアスと名前が表示されます。

私が抱えている問題は、現在アセスメントに学生がいることがわかっているアセスメントを選択すると、学生のエイリアスと名前のリストを実際に表示する代わりに、アセスメントに学生がいないというメッセージが表示されることです。私の質問は、アセスメントに参加している生徒を一覧表示し、代わりに生徒がいないというメッセージを表示し続けることができるのはなぜですか?

phpmyadminでクエリをテストしたので、クエリが正しいことはわかっていますが、正常に動作します。addedstudents.php以下のコードに問題があります:

$session = isset($_POST['session']) ? $_POST['session'] : '';

$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($currentstudentqry);
// You only need to call bind_param once
$currentstudentstmt->bind_param("ii",$session, $studentactive);
// 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();   


$studentSELECT = "";     

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; 
}

}

echo $studentSELECT;
4

2 に答える 2

1

イン$.post()で出品studenttextareaしていaddedstudents.phpますが、インでチェックisset($_POST['session'])しているので$session ==''

どちらかを変更$.post()=>

 {session : search_val}, 

または

addedstudents.php=>

$session = isset($_POST['studenttextarea']) ? $_POST['studenttextarea'] : '';
于 2013-01-09T23:13:40.253 に答える
0

$_POST['session']を設定しているようには見えません

firebugを使用して、AJAXページが何を返しているかを確認し、$_POSTデータのダンプを実行します。'studenttextarea'に投稿しているようです。

于 2013-01-09T23:04:14.370 に答える