2016-04-03 7 views
0

私はphpでjquery関数を作成しようとしていますが、関数は途中でjquery関数の書き込みを停止します。私は、whileループを起動すると、私はwhileループをコメントアウトするたびに、それは動作しますが、それ以外の場合は失敗した500PHPでJQueryスクリプトを生成する

function loadSchedule() { 
$id = $_SESSION['loginID']; 
//query stuffs that works 

$conn = getCon(); 

$res = $conn->query($qry); 

echo "$(document).ready(function() {" 
     ."$('#schedule').fullCalendar({" 
     ." header: {" 
     ." left: ''," 
     ." center: ''," 
     ." right: ''" 
     ."}," 

     ."defaultView: 'agendaWeek'," 
     ."editable: false," 
     ."allDaySlot: false," 
     ."eventLimit: true," // allow "more" link when too many events 
     ."events: ["; 

//problem starts here 
while($rows = $res->fetch_assoc()){ 

    foreach (explode(',', $rows['DOW']) as $val){ 
     echo '{' 
      .'title:"'.$rows['Course_code'].' '.$rows['number'].'",' 
      .'start:"'.$rows['start'].'",' 
      .'end: "'.$rows['end'].'",' 
      .'dow: ['.getDayStr($val).'] ' 
      .'},'; 
    } 
}      
echo "]});});"; 

内部サーバーエラーが発生しているようです。 私はこれをファイルに入れても完全に動作しますが、なんらかの理由でスクリプトタグに入れると失敗します。

+3

なぜですか? javascriptファイルにjavascriptを書いて、代わりにPHPデータをDOMに出力するほうがよいでしょうか。 – adeneo

+0

私は@adeneoに同意します。エラーログを確認する必要があります。 – frz3993

+0

それは良いかもしれませんが、私はチームメートがそれをセットアップした方法を模倣しています。私は今すぐ何か他のことをする時間がないからです。理論的には、PHPはJquery/javascript関数を書くことができます。この関数は、データベース内のデータからテーブルをロードします。 – wolfcall

答えて

0

SQLクエリでエラーが発生すると予想します。クエリに失敗した場合、$resはオブジェクトではないため、while($rows = $res->fetch_assoc())にエラーが発生します。これを確認するには、whileループを置き換えてください。if (!$res) die('query failed '.$conn->error);

+0

クエリはテストされています。 'getDayStr($ val)'が動いていれば他のページの – wolfcall

+0

をチェックしましたか?おそらくこれがエラーの原因です。 –

+0

私たちはどちらも正しかった。クエリは間違っていましたが、SQLのためにではありません...私はセッションを開始するのを忘れました。 – wolfcall

関連する問題