我正在开发一个Web应用程序,我想将数据从php控制器发送到javascript,我做了一些研究,我发现最好的方法是使用Ajax和Json,但我得到的是错误功能,这是行不通的。
这是我的PHP代码:
$rep = $em->getRepository('LoginBundle:Note');
$note = $rep->findAll();
if ($note) {
$x=count($note);
for($i=0; $i<$x; $i++) {
$vote = $note[$i]->getReputation();
$date =$note[$i]->getDate();
$posts[$i] = array('vote' => $vote,'date'=>$date);
}
echo json_encode($posts);
这是我的剧本:
$.ajax({
dataType: "json",
success: function(posts){
$.each(posts, function(idx, post){
data.addRow([idx,post.vote]);
});
},
error: function(jqXHR, textStatus, errorThrown){
alert(textStatus+" error "+errorThrown);
}
});
编辑:
错误是:
parsererror error SyntaxError: unexpected >
这是Json的回应:
[{"vote":12},{"vote":14}]<!DOCTYPE html>
它看起来问题来自<
<!DOCTYPE html>
,但我不知道如何让脚本只接受json数据
任何想法??
谢谢你的帮助
答案 0 :(得分:0)
目前你没有用AJAX调用任何东西,你只是说我期待一些JSON回来。
$.ajax({
dataType: "json",
});
您需要指定url
。
此外......输出JSON后,一般的经验法则是终止,以防止输出任何其他内容并使JSON无效。
// identify that you're making a request via AJAX
$is_ajax = ( ! empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') ? true : false;
// if AJAX return JSON
if ($is_ajax)
{
echo json_encode($data);
exit(); // will terminate script at this point (before HTML)
}
// if not AJAX do your HTML return