2011-12-08 6 views
0

В основном проблемы, которые возникают у меня, это то, что у меня есть раздел сценария, который должен выполняться при изменении поля выбора «градуированные». В основном то, что происходит в документе, никогда не будет готово. Когда я использую консоль Chrome для печати значений студента и градиента, они пусты. Я положил «exit()»; на странице displayeval.php и смог узнать, что документ никогда не будет готов.Документ никогда не готов к получению информации из базы данных

Я понимаю, что этот код испорчен и очень новичок, но я работаю как сумасшедший, чтобы закончить этот проект до конца недели для класса, и я просто хочу, чтобы он работал.

$(document).ready(function() { 
    $('#graded').change(function() { 
     var studentid = $('#studentid').val(); 
     var graderid = $(this).val(); 
     $.get("displayeval.php?graderid=" + graderid + "&studentid=" + studentid, function (data) { 
      $('#behavior-290').val(data.comment); 
     }, "json"); 
    }); 
}); 

instructoreval.php

<?php 
include('includes/header.php'); 
$student_id=$_GET['studentid']; 
if($session->userlevel>=8) 

//if they are an instructor 
{ 
if(isset($_POST['Submit'])){ 
     $query="SELECT * FROM Behavior b, Groups g WHERE g.GROUP_ID=" . $session->GROUP_ID . " AND b.CONTRACT_ID=g.CONTRACT_ID"; 
     $btwo = mysql_query($query) or die(mysql_error()); 
     $numB = mysql_num_rows($btwo); 
     $query2="INSERT INTO Eval (STUDENT_ID, Grader_ID, GROUP_ID, Grade) VALUES (" . $_POST[graded] . ", " . $session->STUDENT_ID . ", " . $session->GROUP_ID . ", '10')"; 
     mysql_query($query2) or die(mysql_error()); 

     $evalid = mysql_insert_id(); 
     for($i=0;$i<$numB;$i++){ 
     $r2 = mysql_fetch_array($btwo); 
     $query3="INSERT INTO EvalComment (CONTRACT_ID, BEHAVIOR_ID, Comment, EVAL_ID) VALUES (" . $r2[CONTRACT_ID] . ", " . $r2[BEHAVIOR_ID] . ", \"" . $_POST[$r2[BEHAVIOR_ID]] . "\", " . $evalid . ")"; 
     mysql_query($query3) or die(mysql_error()); 
     }; 
     $qfour = mysql_query("SELECT * FROM users WHERE GROUP_ID=" . $session->GROUP_ID . " AND STUDENT_ID=" . $_POST[graded]); 
     $rfour = mysql_fetch_array($qfour); 
     popup("Your comments for " . $rfour[lname] . ", " . $rfour[fname] . " have been submitted."); 
    }; 


      $link = mysql_connect("localhost","drallen1","unicode") or die(mysql_error); 
      mysql_select_db("drallen1"); 

      $qsix = mysql_query("SELECT * FROM users u WHERE u.GROUP_ID=" . $session->GROUP_ID . " AND NOT EXISTS(SELECT * FROM Eval e WHERE u.STUDENT_ID=e.STUDENT_ID) AND u.STUDENT_ID!=" . $session->STUDENT_ID); 
      $numE = mysql_num_rows($qsix); 
      /*************************************************** 
      //WHEN numE == 0 GO TO PIE CHART 
      ***************************************************/ 
      //QUERY 
      $qtwo = mysql_query("SELECT * FROM Behavior b, Groups g WHERE g.GROUP_ID=" . $session->GROUP_ID . " AND b.CONTRACT_ID=g.CONTRACT_ID"); 
      // match eval id 
      $numB = mysql_num_rows($qtwo); 

      if($numE>1) 
       $page="evalform.php"; 
      else 
       $page="evalprocess.php"; 

       echo "<form action=$page method=\"POST\">";?> 

      <script type="text/javascript"> 
       $(document).ready(function(){ 
          $('#graded').change(
           function() { 
           var studentid = $('#studentid').val(); 
           var graderid = $(this).val(); 

           $.get("displayeval.php?graderid=" + graderid + "&studentid=" + studentid, 
            function(data){ 
             $('#behavior-290').val(data.comment); 
            }, "json"); 
          }); 
        }); 
     </script> 
      <input type="hidden" name="studentid" id="studentid" value="<?php echo $_GET['studentid'];?>" /> 
      Student: <select name="graded" id="graded"> 
       <option selected="selected">Please Select a Student to Grade</option> 
       <?php for($i=0;$i<$numE;$i++){ 
       $rsix = mysql_fetch_array($qsix);?> 
       <option value="<?php echo $rsix[STUDENT_ID]?>"><?php echo $rsix[fname] . " " . $rsix[lname]?></option> 
       <?php };?> 
      </select></br></br> 

      <!--$qthree = mysql_query("SELECT EVAL_ID FROM Eval WHERE GRADER_ID=" . $student_id. " AND STUDENT_ID=" . graded.value); --> 

      <?php for($i=0;$i<$numB;$i++){ 
      //result of qtwo 
       $rtwo = mysql_fetch_array($qtwo); 
       echo "Behavior: <input name=\"BEHAVIOR_ID\" type=\"text\" value=\"" . $rtwo[BehaviorName] . "\" readonly=\"readonly\"/> </br>"; 

       //$queryshit="SELECT Comment FROM EvalComment WHERE EVAL_ID=RESULTFROMQTHREE AND BEHAVIOR_ID=" . $rtwo[BEHAVIOR_ID]; 
       //$comments; 

       echo "Comments: <textarea name=\"" . $rtwo['BEHAVIOR_ID'] . "\" id=\"behavior-" . $rtwo['BEHAVIOR_ID'] . "\" rows=\"5\" cols=\"50\">". $comments . "</textarea> </br>"; ?> 
      <?php };?> 
      </br> 
      <input type="submit" value="Send!" name="Submit"/> 
      </form> 
     </body> 

    </html> 

    <? include("includes/footer.php"); 
    }else{ 
    echo "You don't have access to this."; 
};?> 

displayeval.php

<?php 
include('include/session.php'); 


$grader_id=$_GET['graderid']; 
$student_id=$_GET['studentid']; 

$query="SELECT EVAL_ID FROM Eval WHERE GRADER_ID=". $grader_id . " AND STUDENT_ID=" . $student_id; 

$result=mysql_query($query) or die(mysql_error()); 
$data=mysql_fetch_array($result); 

$eval_id=$data['EVAL_ID']; 

$query="SELECT BEHAVIOR_ID,Comment comment FROM EvalComment WHERE EVAL_ID=". $eval_id; 
$result=mysql_query($query) or die(mysql_error()); 

$data2=mysql_fetch_assoc($result); 
//print_r($data2); 


// query database based on GET params 

// fetch result 
// $mysql_row = mysql_fetch_assoc() 

// display in JSON: 
echo json_encode($data2); 

это результат displayeval (displayeval.php? Graderid = 0 & studentid = 241654664) страницы

{"BEHAVIOR_ID":"1","comment":"Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write Write"} 
+0

Какой браузер вы тестируете? Поместите контрольную точку в «var studentid» и посмотрите, вызвана ли она слишком рано. –

+2

Что значит «документ никогда не будет готов» - вы имеете в виду, что javascript на стороне клиента никогда не выполняется, или серверный код не заканчивается, или? Если проблема находится в интерфейсном коде Javascript, PHP, который вы опубликовали, не имеет значения, и наоборот. – nrabinowitz

+1

Вы можете показать выход html? – themerlinproject

ответ

1

Во-первых, убедитесь, что $('#graded') элемент существует, попробуйте:

$(document).ready(function() { 
    alert($('#graded').attr('id')); // should alert 'graded' 
}); 

Во-вторых, если вы загружаете его динамически (после того, как страница была оказана), вам нужно объявить метод change() через $.bind() или $.live() события.

$('#graded').live('change', function() { 
    ... 
}); 

И, наконец, будьте осторожны с $.change().

Для галочки, вы можете сделать это:

$('#graded').change(function(){ 
    if ($(this).is(':checked')) { 
     // the checkbox is now checked, do something 
    } else { 
     // the checkbox is now UN-checked, do something else 
    } 
}); 

В дополнение ко всему, что (принцип ПОЦЕЛУЙ), убедитесь, что библиотека JQuery является на самом деле загружается:

if (jQuery) { 
    alert('jQuery is loaded'); 
} 
+0

Я попытался использовать $ ('# градуированный'). Live ('change', function() { ... }); но это не сработало. Я использовал предупреждение, которое действительно работало. Я помещал предупреждение внутри функции изменения, которое также предупреждалось, когда я менял поле выбора. Это должно иметь какое-то отношение к URL-адресу, что я получаю –

+1

. Я все благодарен, в итоге получил его работу. Проблема заключалась в переменных –

Смежные вопросы