使用$ .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
你必须使用报价当你在javascript对象中指定值(而不是数字)时。
eventData = {
title: "title",
start: "start",
end: "end"
};
提示
此外,您还可以查看是否通过检查元素有一个与你的JavaScript部分错误。右键单击并单击检查/检查元素。然后去控制台。如果执行javascript部分后出现任何错误,您将看到错误。
还在调试JavaScript的一部分时,你可以使用console.log()
看到此块
eventData = {
title: title,
start: start,
end: end
};
你从哪里得到的标题,开始和结束值的变量
但这些是以前定义在点击时刻的其他变量,我会尝试控制台 –
我能问你的价值观?
如果你没有从某处或标题得到这个值,开始和结束不是定义,你必须用这样的引号来改进代码。
eventData = {
title: "title",
start: "start",
end: "end"
};
如果你想发送字符串,你必须使用引号!
找出来了,问题在变量“开始”和“结束”之内,它们是合成日期类型ISO8601,接收到的数据插入到数据库时会引起什么麻烦......谢谢大家的时间,但现在的问题是将此日期对象转换为自定义字符串...
字符串需要在查询中引用,也可以考虑使用参数化查询,以避免像这样的错误和sql注入以及什么不。 – Musa
检查您的浏览器的控制台。您可能有错误或正在使用错误的路径来添加'add.php'。检查AJAX POST请求的* Network *控制台并检查请求和响应数据。最后,使用[prepared statement](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)将值插入到数据库中,而不会引入SQL注入漏洞。 – Phil
您的数据库中是否有称为'jqcalendar'的表,名为'jqcalendar'?如果不是,我猜这些需求中有一个需要改变。 – kunruh