【问题标题】:Post not working in Ajax to save the input to database发布无法在 Ajax 中工作以将输入保存到数据库
【发布时间】:2016-03-03 13:14:53
【问题描述】:

我正在尝试通过 ajax 在完整日历上保存一个事件。

我已经测试了用于插入事件的 php,它工作正常。所以我意识到这些事件不是通过 ajax 传递的。

它们没有被传递以进行插入或更新。

<script>

$(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,
    header: {
    left: 'prev,next today',
    center: 'title',
    right: 'month,agendaWeek,agendaDay'
   },

  events: "events.php",

   // Convert the allDay from string to boolean
   eventRender: function(event, element, view) {
   if (event.allDay === 'true') {
      event.allDay = true;
   } else {
     event.allDay = false;
    }
 },
  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);
  $.ajax({
     url: 'add_events.php',
     data: 'title='+ title+'&start='+ start +'&end='+ end +'&url='+ url ,
     type: "POST",
     success: function(json) {
     alert('Added Successfully');
    }
   });
   calendar.fullCalendar('renderEvent',
  {
   title: title,
   start: start,
   end: end,
   allDay: allDay
  },
  true // make the event "stick"
  );
 }
  calendar.fullCalendar('unselect');
 },

 editable: true,
 eventDrop: function(event, delta) {
 var start = $.fullCalendar.moment(event.start);
 var end = $.fullCalendar.moment(event.end);
 $.ajax({
   url: 'update_events.php',
   data: 'title='+ event.title+'&start='+ start +'&end='+ end +'&id='+ event.id ,
   type: "POST",
   success: function(json) {
   alert("Updated Successfully");
   }
 });
 },
 eventResize: function(event) {
 var start = $.fullCalendar.moment(event.start);
 var end = $.fullCalendar.moment(event.end);
  $.ajax({
   url: 'update_events.php',
   data: 'title='+ event.title+'&start='+ start +'&end='+ end +'&id='+ event.id ,
  type: "POST",
  success: function(json) {
  alert("Updated Successfully");
  }
 });

 }

 });

});

</script>

这里是插入代码(add_events.php)

 $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', 'umar', 'Umar@295');
 } catch(Exception $e) {
   exit('Unable to connect to database.');
 }

 // insert the records
   $sql = "INSERT INTO evenement (title, start, end, url) VALUES (:title, :start, :end, :url)";

   $q = $bdd->prepare($sql);
   $q->execute(array(':title'=>$title, ':start'=>$start, ':end'=>$end,  ':url'=>$url));

这里是更新事件的 update_events :

 /* Values received via ajax */
 $id = $_POST['id'];
 $title = $_POST['title'];
 $start = $_POST['start'];
 $end = $_POST['end'];

 // connection to the database
 try {
   $bdd = new PDO('mysql:host=localhost;dbname=fullcalendar', 'umar', 'Umar@295');
  } catch(Exception $e) {
   exit('Unable to connect to database.');
  }
 // update the records
 $sql = "UPDATE `evenement` SET 'title'=?, 'start'=?, 'end'=? WHERE 'id'=?";
 $q = $bdd->prepare($sql);
 $q->execute(array($title,$start,$end,$id));

如果有人能指出我如何让​​ Ajax 中的 POST 正常工作或我做错了什么,我将不胜感激。

【问题讨论】:

  • 如果问题不在 JS/Ajax 中,那么您的问题与那个问题重复 ^ - 您在 UPDATE 部分使用了错误的标识符限定符。
  • Eagle-eye Ralph!! 在第二个查询@Fred-ii- 中肯定应该有反勾号。 OP 您如何验证您的帖子值是否已设置?
  • 似乎没有人在听我山姆 @JayBlanchard 但发现了我 ;-)
  • 插入和更新正常,ajax不工作。

标签: javascript php jquery mysql ajax


【解决方案1】:

正如我在 cmets 中所说,您对 UPDATE 中的列使用了不正确的标识符限定符,即常规引号 ' 而不是刻度。

参考:

这就是你所拥有的

$sql = "UPDATE `evenement` SET 'title'=?, 'start'=?, 'end'=? WHERE 'id'=?";

这就是它应该读作的内容

$sql = "UPDATE `evenement` SET `title`=?, `start`=?, `end`=? WHERE `id`=?";

并为此检查错误,会给你一些关于它的东西。

【讨论】:

  • 它仍然没有将事件保存到数据库中。
  • 插入工作正常,ajax 不工作。
  • @UmarAftab 您的 ajax 与 UPDATE 相关,我没有引用 INSERT。
  • 你看过浏览器控制台@UmarAftab中的AJAX请求/响应吗?
  • @JayBlanchard 想知道他是否首先加载了 jQuerySam
【解决方案2】:

您需要更改使用 post ajax 发送数据的方式。 试试这个。

data: {
   title : event.title,
   start : start
   end : end,
   id : event.id
},

等等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-08
    • 2014-06-22
    • 2021-01-29
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多