2016-10-27 6 views
1

私は予定をプログラミングしていますが、javascriptではイベントが生成されず、プレーンテキストでコードが表示されるため、問題は解決しません。 SQLデータベースとのforeach内のJavaScriptコードjqueryはforeach上でイベントを生成します

<script> 
    function getEventData() { 
    <?php 
     function showAppointments($von, $bis){ 
      $link = OpenDB(); 
      try { 
      $query = 'SELECT termin_id, client, dateFrom, dateTill, title, descri FROM termin WHERE dateFrom BETWEEN :von AND :bis'; 
      $statement = $link->prepare($query); 
      $statement->bindValue(':von', $von, PDO::PARAM_STR); 
      $statement->bindValue(':bis', $bis, PDO::PARAM_STR); 
      $statement->execute(); 

      $row = $statement->fetchAll(); 
      } 
      catch (PDOException $e) { 
       p($e); 
      } 
      CloseDB($link); 

      return $row; 
     } 
    if(empty($von) && empty($bis)) { 
       $von = date("Y.m.j",strtotime("monday this week")); 
       $bis = date("Y.m.j",strtotime("sunday this week")); 
      } 
      if(isset($_POST['last_week'])){ 
       $von = date("Y.m.j",strtotime("previous monday")); 
       $bis = date("Y.m.j",strtotime("previous sunday")); 
      } 
      if(isset($_POST['next_week'])){ 
       $von = date("Y.m.j",strtotime("next monday")); 
       $bis = date("Y.m.j",strtotime("next sunday")); 
      } 
      $rows = showAppointments($von, $bis); 

     echo "const appointments = ["; 
     for($i = 0; $i < sizeof($rows); $i++) { 
      $columns = array_values($rows[$i]); 
      echo "["; 

      for($j=0; $j< sizeof($columns); $j++){   
      echo "'".$columns[$j]."'"; 
      if($j < sizeof($columns)-1) echo ","; 
      } 
      echo "]"; 

    if($i < sizeof($rows)-1) echo ",";  
     } 

      echo "];"; 
    ?> 
then all events are generated by jquery and returned 

    return { 

      events:[ 

      $.each(appointments, function(index, row){ 

        eval("{'id':"+ row[0] + ",'client':"+ row[1] +",'start':" + new Date(row[2])+",'end': "+ new Date(row[3]) +",'title':'"+ row[4] +"','description':'"+ row[5] +"'}"); 

      }); 

      ]}} 
</script> 

コードをプレーンテキストとして印刷されて生成し、どのように私はこの問題を解決することができますか?

{'id':1, 'start': new Date(year, month, day, 12), 'end': new Date(year, month, day, 13, 30),'title':'Lunch with Mike'} 
+0

私は理解できません、あなたのPHPコードはブラウザに表示されていますか? – Epodax

+0

phpコードは表示されませんが、jqueryのforeachのコードはプレーンテキストとして出力されます – Sparkm4n

+0

私はまだあなたの質問を得ていませんが、PHPがjQuery/JSで毎回実行されることを期待していますか? – Epodax

答えて

1

あなたはJquery.each outside eventsを試してからeval(Array.join)を使うべきです。 JavaScriptで動作するはずです

+0

は、単純にプレーンテキストとして印刷されています – Sparkm4n

関連する問題