2016-09-10 6 views
0

ポップアップボックスから入力したイベントのタイトルを追加できません。ajaxを使ってmysqlデータベースにイベントを追加する

私はAjaxコードを配置このjqueryのコードを持っている:

$(document).ready(function() { 

var date = new Date(); 
var d = date.getDate(); 
var m = date.getMonth(); 
var y = date.getFullYear(); 

    var calendar = $('#calendar').fullCalendar({     
     editable: true, 
     events: "http://localhost/test/events.php", 
     selectable: true, 
     selectHelper: true, 
     select: function(start, end, allDay) { 
     var title = prompt('Event Title:'); 
     if (title) { 

     /* 
     start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss"); 
     end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss"); 
     $.ajax({ 
     url: 'http://localhost/test/add_events.php', 
     data: 'title='+ title+'&start='+ start +'&end='+ end , 
     type: "POST", 
     success: function(json) { 
     alert('OK'); 
     } 
     }); 
     */ 

     calendar.fullCalendar('renderEvent', 
     { 
     title: title, 
     start: start, 
     end: end, 
     allDay: allDay 
     }, 
     true // make the event "stick" 
     ); 
     } 
     calendar.fullCalendar('unselect'); 
     } 
    }); 

}); 

、私はINSERTクエリが

<?php 

    $title=$_POST['title']; 
    $start=$_POST['start']; 
    $end=$_POST['end']; 

    // connect to the database 
    try { 
    $bdd = new PDO('mysql:host=localhost;dbname=fullcalendar', 'root', ''); 
    } catch(Exception $e) { 
    exit('Can not connect to the database.'); 
    } 

    $sql = "INSERT INTO evenement (title, start, end) VALUES (:title, :start, :end)"; 
    $q = $bdd->prepare($sql); 
    $q->execute(array(':title'=>$title, ':start'=>$start, ':end'=>$end)); 
    ?> 

を書かれているこのadd_events.phpを持っている私は自分のコードスニペットコメントdefault.htmlこれは問題がどこにあるのかと思うからです。このコードスニペットにコメントを付けると、ポップアップボックスからイベントを追加できます。イベントのタイトルを確認した後、イベントのタイトルはフルカレンダーに表示されます(ただし、データベースにはまだ追加されていません)。しかし、私がそのセクションのコメントを外すと、ポップアップ・ボックスから入力されたイベント・タイトルが私のfullCalendarに表示されません。(明らかに私のデータベースにまだ追加されていません)

誰かが私のajaxコードを編集できるように助けられますか?ポップアップボックスから入力されたイベントのタイトルを私のfullCalendarに表示させ、データベースに正常に追加することができます。

ありがとうございます!

答えて

0

あなたのバグは、Ajaxコールとコール後のデータ設定方法にあると思います。

var start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss"); 
var end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss"); 
var title = "Title name"; 
$.ajax({ 
    url: 'http://localhost/test/add_events.php', 
    data: { 
     title: title, 
     start: start, 
     end: end 
    }, 
    type: "POST", 
    success: function(json) { 
     alert('OK'); 
    } 
}); 
+0

同じ問題が発生します。

あなたのデータ属性は、このようにする必要があります。それでも、入力されたイベントのタイトルは私のフルカレンダーには表示されません –

関連する問題