$.ajax połączenie z bazą danych


(niesuszek) #1

Witam. W jaki sposób zapisać rekordy do bazy danych stosując $.ajax? Mam taki kod i nie wiem czemu nie działa. Proszę o pomoc.

 

kalendarz.html

<!DOCTYPE html>
<html>
<head>
<link href='CSS/fullcalendar.css' rel='stylesheet' />
<script src='js/jquery-1.11.0.js'></script>
<script src='js/fullcalendar.min.js'></script>
<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',
        center: 'title',
        right: 'month,agendaWeek'
       },
       
       selectable: true,
       selectHelper: true,
       select: function(start, end, allDay) {
           var title = prompt('Podaj tytuł:');
           if (title){
               var start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss");
               var end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss");
               $.ajax({
                   url: 'http://.../polaczenie_terminarz.php',
                   data: 'title='+ title+'&start='+ start +'&end='+ end ,
                   type: "POST",
                   success: function(json) {
                        alert('Dodano poprawnie.');
                   }
               });
               calendar.fullCalendar('renderEvent',{title: title,start: start,end: end,allDay: allDay},true);
           }
       } 
  });
});
</script>
<style>
body {
  margin-top: 40px;
  text-align: center;
  font-size: 14px;
  font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
}
#calendar {
  width: 900px;
  margin: 0 auto;
}
</style>
</head>
<body>
<div id='calendar'></div>
</body>
</html>

polaczenie_terminarz.php

<?php
mysql_connect('mysql.cba.pl', 'xxx', 'xxx') or
	die('Nie można połączyć się z bazą danych');
 
mysql_select_db('xxx') or
	die(mysql_error());
 
$start = $_POST['start'];
$end = $_POST['end'];
$title = $_POST['title'];
mysql_query("INSERT INTO terminarz (start, end, title) VALUES ($start, $end, $title)");

?>

(knyku) #2

 

trochę dziwny ten zapis

 

spróbuj dać tak

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

powinno Ci wtedy zadziałać


(ra-v) #3

To jeden pies czy data to string czy objekt.

 

Błędu nie podałeś, ale pewnie masz go w zapytaniu INSERT.

mysql_query("INSERT INTO terminarz (start, end, title) VALUES ('$start', '$end', '$title')");

Albo jeszcze lepiej

mysql_query("INSERT INTO terminarz (start, end, title) VALUES ('".mysql_real_escape_string($start)."', '".mysql_real_escape_string($end)."', '".mysql_real_escape_string($title)."')");

Na przyszłość poczytaj o przechwytywaniu błedów:

http://php.net/manual/pl/function.mysql-errno.php

http://www.php.net/manual/pl/function.mysql-error.php


(niesuszek) #4

Dzięki wielkie ra-v , w tym tkwił problem.