0

JQuery Full Calendar を使用して、mysql localhost からの JSON フィードの結果を表示しています。最初は を使用して Calendar 関数から更新されますが、POST メソッドと送信ボタンを使用してフォームの送信ボタンからevents: "json-events.php",も実行しようとしています。json-events.phpJSON フィードはうまく機能しますが、結果の ECHO しか取得できず、index.php に戻って結果をカレンダーに表示することはできません。json-events.php のコード...

<?php

$year = date('Y');
$month = date('m');
$day = date('d');

$link = mysql_connect('localhost','root','');
if (!$link) { die('Could not connect: ' . mysql_error()); }
mysql_select_db('jauntUK');

$latevent = $row['Lat'];
$lngevent = $row['Long'];
$tgtlat = $_POST['searchlat'];
$tgtlatstring = number_format($tgtlat, 16, '.', '');
$tgtlng = $_POST['searchlong'];
$tgtlngstring = number_format($tgtlng, 16, '.', '');


if($_POST) {


    $result = mysql_query("SELECT *, ( 3959 * acos( cos( radians( `Lat` ) ) * cos( radians(" . $tgtlatstring . ") ) * cos( radians(" . $tgtlngstring . ") - radians( `Long` ) ) + sin( radians( `Lat` ) ) * sin( radians(" . $tgtlatstring . ") ) ) ) AS distance FROM EventData HAVING distance < 5")
or die (mysql_error());

// Initializes a container array for all of the calendar events
$jsonArray = array();

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    var_dump($row);

 $eventtitle = $row['Title'];
 $eventdate = $row['StartDate'];
 $eventend = $row['EndDate'];
 $eventallday = $row['FullDay'];
 $eventURL = $row['URL'];
 $Description = $row['Description'];
 $Address1 = $row['Address1'];
 $Address2 = $row['Address2'];
 $Address3 = $row['Address3'];
 $Address4 = $row['Address4'];
 $PostCode = $row['PostCode'];
 $Admission = $row['Admission'];

 // Stores each database record to an array
 $buildjson = array('title' => "$eventtitle", 'start' => "$eventdate", 'end' => "$eventend", 'allday' => "$eventallday", 'eventURL' => "$URL", 'description' => "$Description", 'Address1' => "$Address1", 'Address2' => "$Address2", 'Address3' => "$Address3", 'Address4' => "$Address4", 'PostCode' => "$PostCode", 'Admission' => "$Admission");

 // Adds each array into the container array
 array_push($jsonArray, $buildjson);
}
// Output the json formatted data so that the jQuery call can read it
echo json_encode($jsonArray);   
header('location: index.php');


 } else { 


 echo json_encode(array(

        array(
            'id' => 001,
            'title' => "Search for events near you",
            'start' => "$year-$month-$day",

        )

    ));
}
?>

何かアドバイス?- ご協力ありがとうございます

4

1 に答える 1

0

古いイベントを保持し、新しいイベントを追加するだけですか? それとも、新しいイベントのみを表示しますか? 前者の場合は、フォームを送信して index.php にリダイレクトする代わりに、AJAX を使用してみてください。成功時にデータを返し、http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/を使用 してレンダリングできます。このようなもの

('#submit-button').on("click",function(){

  $.ajax({
        type:"POST",
        url: "json-events.php",
        data: $('#your-form').serialize(),
        success: function(data){
                        $.each(data, function(index, event){
                          $('#calendar').fullCalendar('renderEvent', event);
                        );
        }
    });
    return false;  // to stop the form from actually submitting
});

このコードは、カレンダーのあるページのドキュメント準備完了関数内の任意の場所に追加する必要があります。フォームの送信ボタンをクリックすると、フォームから json-events.php ページにデータが送信されます。そこでデータベースにクエリを実行し、json_encode でイベントを返します。次に、success 関数で、データベースから取得した各イベントをレンダリングします。上記の例は fullcalendar js から借用しました: fetching more events with ajax

古いイベントを表示したくない場合は、追加することを検討してください。

('#calendar').fullCalendar('removeEvents');

新しいものを追加する前に。

于 2012-09-25T00:02:28.907 に答える