2016-03-10 102 views
0

所以我想要做的就是使用完整的日历ajax调用来获取注册在数据库中的事件。 当我尝试这样做时,没有错误弹出,事实上,ajax调用返回成功添加到数据库。未通过jQuery Ajax请求传递的发布变量?

我单独测试了PDO查询,它工作的很完美,所以请帮助我使用ajax文章,因为这是我列出的错误之一。

这是default.html中的ajax调用。

selectable: true, 
selectHelper: true, 
select: function(start, end, allDay) { 
    var title = prompt('Event Title:'); 
    var url = prompt('Type Event url, if exits:'); 
    if (title) { 
     var start = $.fullCalendar.moment(start); 
     var end = $.fullCalendar.moment(end); 
     console.log("Event Triggered"); 
     $.ajax({ 
       url: 'add_events.php', 
       data: 'title='+ title+'&start='+ start +'&end='+ end +'&url='+ url , 
       type: "POST", 
       success: function(json) { 
        alert('Added Successfully'); 
       }, 
       error: function(xhr, textStatus, errorThrown) { 
        alert(xhr.responseText); 
       } 
     }); 
     calendar.fullCalendar('renderEvent', 
     { 
      title: title, 
      start: start, 
      end: end, 
      url:url, 
      allDay: allDay 
     }, 
      true // make the event "stick" 
     ); 
    } 
    calendar.fullCalendar('unselect'); 
} 

这是add_events.php(请注意,这没有任何错误,只是它不接受邮寄)。

<?php 
    // Values received via ajax 

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

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



    $sql = "INSERT INTO " 
    . "`evenement` " 
    . "SET " 
    . "`title` = :title, " 
    . "`start` = :start, " 
    . "`end`  = :end, " 
    . "`url`  = :url "; 

    $stmt = $pdo->prepare($sql); 
    $result = $stmt->execute(array(':title'=>$title, ':start'=>$start, ':end'=>$end, ':url'=>$url)); 
    if (!$result) { 
     print_r($pdo->errorInfo()); 

    } 
?> 

我看到控制台日志,交XHR GET请求变量。他们只是不会从jQuery到PHP。

任何协助如何可以实现将不胜感激。

enter image description here

回答

-1

使用

data: { title : title, start : start , end : end , url : url } 

代替

data: 'title='+ title+'&start='+ start +'&end='+ end +'&url='+ url 
+0

一点解释将是有益的。 OPs方法[适用于我](https://jsfiddle.net/mq21vc5n/)。根据[ajax()文档](http://api.jquery.com/jquery.ajax/),“数据”被转换为查询字符串,如果还没有字符串的话。 – showdev

+0

它只是让我的日历完全消失。 –