【发布时间】:2014-09-10 19:48:22
【问题描述】:
我的代码有一个我无法理解的问题。 在我的项目中,我有一个包含以下函数的外部 js 文件:
function setFeedback(voto, id) {
var str = '{"voto":'+voto+',"idcorso":'+id+'}';
var obj = JSON.parse(str);
$.ajax({
url: 'feed.php',
method: 'POST',
data: obj,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function() {
$( "#vota" ).hide( "slow", function() {
alert( "Grazie per aver votato il corso" + voto + id );
});
},
error: function(){
alert("Chiamata fallita, si prega di riprovare...");
}
});
}
应该通过邮寄“voto”和“id”发送。 我的 feed.php 文件很简单:
<?php
session_start();
require_once('lib/DBhelper');
require_once('lib/Course.php');
if(isset($_POST['voto']) and isset($_POST['idcorso'])){
$voto = $_POST['voto'];
$course = new CourseManager($_POST['idcorso']);
$course->rateCourse($voto, $_SESSION['autenticato']);
}
rateCourse 是一个简单的数据库插入方法,例如:
插入反馈集id= $id ......
所以我尝试了很多方法,但该函数总是返回错误函数。只有当我不写 'dataType: 'json' 时,它才会成功返回,但 db 中没有写入任何内容。 我不明白错误在哪里,如果 json 错误或其他什么...
感谢您的帮助,对不起我糟糕的英语:)
我试过了
function setFeedback(voto, id) {
var obj = { 'voto': voto, 'idcorso': id };
$.ajax({
url: 'feed.php',
method: 'POST',
data: obj,
dataType: 'json',
success: function() {
$( "#vota" ).hide( "slow", function() {
alert( "Grazie per aver votato il corso" + voto + id );
});
},
error: function(){
alert("Chiamata fallita, si prega di riprovare...");
}
});
}
和php文件
<?php
session_start();
echo 'va male';
require_once('lib/DBhelper');
require_once('lib/Course.php');
$postdata = json_decode(file_get_contents("php://input"), true);
$id = $postdata['idcorso'];
$voto = $postdata['voto'];
$course = new CourseManager($id);
$course->rateCourse($voto, $_SESSION['autenticato']);
}
当我使用 dataType = 'json' 时,我收到了错误消息,所以我认为问题不在 POST 数据中,而是在连接中。 如果我不写 dataType 调用成功函数,但没有写在 db 中。
【问题讨论】:
-
实际错误是什么?是否发出了 AJAX 请求,如果有,服务器的响应是什么?
标签: php jquery mysql ajax json