使用$ .post通过PHP插入数据库的问题

问题描述:

所以...我一直在尝试使用JQuery发布请求在我的数据库中插入数据2天,并且无法使其工作,吨有为什么...我敢打赌,有人已经面临这个问题太什么想法,所以我在这里寻找此人:)

这里的问题:

到HTML文件,使用jQuery的部分(它是在一个click事件):

var eventData; 

eventData = { 
    title: title, 
    start: start, 
    end: end 
}; 

$.post("add.php", eventData); 

的add.php文件:

$con = mysqli_connect("localhost", "root", "", "jqcalendar"); 

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

mysqli_query($con, "INSERT INTO jqcalendar(title,start,end) VALUES({$title},{$start},{$end})"); 

mysqli_close($con); 

不能使这个东西的工作,已经尝试了回声,但它似乎PHP文件甚至没有执行$ .post命令...如果有人可以帮助我真的很感激它...

编辑: 标题,开始和结束是先前用“”!

我使用控制台检查,并在同一行中得到这个错误的 $。员额:

$ @ .fullCalendar.select的index.html:35

+3

字符串需要在查询中引用,也可以考虑使用参数化查询,以避免像这样的错误和sql注入以及什么不。 – Musa

+0

检查您的浏览器的控制台。您可能有错误或正在使用错误的路径来添加'add.php'。检查AJAX POST请求的* Network *控制台并检查请求和响应数据。最后,使用[prepared statement](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)将值插入到数据库中,而不会引入SQL注入漏洞。 – Phil

+1

您的数据库中是否有称为'jqcalendar'的表,名为'jqcalendar'?如果不是,我猜这些需求中有一个需要改变。 – kunruh

你必须使用报价当你在javascript对象中指定值(而不是数字)时。

eventData = { 
    title: "title", 
    start: "start", 
    end: "end" 
}; 

提示

此外,您还可以查看是否通过检查元素有一个与你的JavaScript部分错误。右键单击并单击检查/检查元素。然后去控制台。如果执行javascript部分后出现任何错误,您将看到错误。

还在调试JavaScript的一部分时,你可以使用console.log()看到此块

eventData = { 
    title: title, 
    start: start, 
    end: end 
}; 

你从哪里得到的标题,开始和结束值的变量

+0

但这些是以前定义在点击时刻的其他变量,我会尝试控制台 –

我能问你的价值观?

如果你没有从某处或标题得到这个值,开始和结束不是定义,你必须用这样的引号来改进代码。

eventData = { 
    title: "title", 
    start: "start", 
    end: "end" 
}; 

如果你想发送字符串,你必须使用引号!

找出来了,问题在变量“开始”和“结束”之内,它们是合成日期类型ISO8601,接收到的数据插入到数据库时会引起什么麻烦......谢谢大家的时间,但现在的问题是将此日期对象转换为自定义字符串...