在javascript中我有以下内容:
var jobData = {
"SquareN": rectangle.getBounds().getNorthEast().lat,
"SquareE": rectangle.getBounds().getNorthEast().lng,
"SquareS": rectangle.getBounds().getSouthWest().lat,
"SquareW": rectangle.getBounds().getSouthWest().lng,
"SiteName": $("#jobname").val(),
"SiteType": 3,
"EstFlags": $("#numberFlags").val()
};
$.ajax({
url: "send_jobsite.php",
type: "POST",
data: {jobSite: jobData},
});
然后在我的php文件中我正在执行$ _POST ['jobSite']但是从POST获得了500内部服务错误。我不确定错误的原因是什么或如何解决它。这是我第一次尝试将ajax发送到php服务器脚本,然后将该数据发送到mysql数据库。
任何提示都会很棒。
腓:
if($con->connect_errno) {
printf("Connect Failed: %s\n", $con->connect_error);
exit();
}
echo $_POST['jobSite'];
$con->close();
?>
我发布之前的第一行是与数据库的连接,这是正确的,因此没有包含。
答案 0 :(得分:0)
问题似乎与您的data
格式有关。当你发送这样的东西时(就像你一样)
data: {foo: {
a: "a",
b: "b"
}}
jQuery会将数据编码为
foo%5Ba%5D=a&foo%5Bb%5D=b
或解码
foo[a]=a&foo[b]=b
可以被PHP读取为关联数组,即
$foo_a = $_POST['foo']['a'];
$foo_b = $_POST['foo']['b'];
您可能无法正确访问$_POST
数据。你应该使用像
$_POST['jobSite']['SquareN']
等。或者,将您的JavaScript代码更改为
data: jobData,
并通过
访问属性$_POST['SquareN']
等等。
答案 1 :(得分:-1)
好像你请求的jobData格式不正确。我猜你正在尝试发送JSON数据。请尝试以下数据。
var jobData =' {" SquareN":" ff"," SquareE":" dd",&#34 ; SquareS":" aa"," SquareW":" bb"," SiteName":" ll" ," SiteType":3," EstFlags":" nn"}';
并在send_jobsite.php文件中查看您正在接收的输入数据。